БД MySQL проверка данных
Приветствую уважаемые.
Сразу скажу, что с БД ни когда дело не имел. Собственно такой вопрос. К примеру пользователь зарегистрирован в программе, в бд находятся логин пароль и лиц ключ. При подключении, а именно ввода логина я хочу проверить существует ли данный пользователь в БД, далее если существует то поле лиц ключа нужно проверить в другой БД где занесены списки ключей зарегистрированных пользователей. Если данный ключ есть в базе то даём добро на вход в программу, если нет данного ключа то ошибка. Можно ли это все организовать средствами самого клиента который подключается и БД на хостинге. Или придётся ещё дополнительно для такой проверки, что организовывать? Спасибо. |
Ответ: БД MySQL проверка данных
В случае с сайтами проверка и делается на стороне клиента в блоке php кода. Делается подключение к БД, запрос пользователей и проверка например input поля и данных из БД. В случае успешной проверки получаешь дополнительные данные.
|
Ответ: БД MySQL проверка данных
У меня ни сайт, программа которая получает данные с БД. Вот и хотел поинтересоваться, нужно ли сторонии фичи какие нибудь писать (скрипты php) или еще что то там(я не знаю), или достаточно запросами от клиента это все проверять?
То есть отослали запрос, на стороне сервера(MySQL) запустили некий скрипт который и будет выполнять данную проверку того чего я описал. Методом MySQL возможно это все организовать? Или придется дополнительно, что то писать, вкуривать и тд. |
Ответ: БД MySQL проверка данных
Лучше сделать сайт с php скриптом к которому обращается прога для безопасности и универсальности.
Так же можно сделать запрос прям к БД с сортировкой. Хз какой именно запрос нужен, что то типа WHERE input (поле в проге) == users (таблица в БД) и если БД вернет массив данных, то значит такой юзер есть. :-) |
Ответ: БД MySQL проверка данных
Вот тоже думал для безопасности через php скрипт сделать.
Спасибо за советы. Может еще кто, что посоветует :) |
Ответ: БД MySQL проверка данных
Ну между базой и пользователем по-любому должен быть интерфейс какой-то. Если коннектиться напрямую к базе, то это у каждого пользователя будет потенциально полный доступ к твоей базе данных с возможностью изменять любые данные. И как ты пароль к базе ни прячь внутри своей проги, его по-любому кто-то найдёт и использует, будь уверен.
На самом деле реализуется это всё элементарно на том же PHP, буквально в 20 строк кода, а то и меньше. |
Ответ: БД MySQL проверка данных
Ну то есть, мы делаем некий запрос к PHP скрипту который находится на серваке, а этот самый PHP скрипт делает обработку которую нужно, и отправляет данные клиенту который выполнял запрос. Верно я понимаю?
Про прямой доступ конечно это лажа, так как в самой программе придется прописывать и логины и пароли, конечно вероятность взлома стопроцентная. Про PHP скрипт тоже подумывал, реализовать запрос через него. Только пока с этим не особо дружу. Будем вкуривать. Благо интернет сейчас пестрит инфой. :) |
Ответ: БД MySQL проверка данных
Цитата:
Вот на вики статья на эту тему: тыц Цитата:
|
Ответ: БД MySQL проверка данных
Хорошим тоном считается не хранить логин и пароль пользователя. Вместо этого хранить хэш-ключ из логина+пароля+контрольная сумма
|
Ответ: БД MySQL проверка данных
Цитата:
Криптостойкость алгоритма md5 уже давно была дискредитирована - он устарел. Что использовать вместо него? Bcrypt? Почти. Тебе нужны эти функции: http://php.net/manual/ru/function.password-verify.php http://php.net/manual/ru/function.password-hash.php Пример использования (в ответах смотрим): http://stackoverflow.com/questions/2...assword-verify Выбор актуального алгоритма хеширования с приемлемым соотношением цена/стойкость тут отдан на откуп разрабам php, так что можно расслабить булки и перестать изобретать хрень с солями и прочей фигнёй, которая, кстати, не особо спасает от коллизий. Так же стоит отметить, что при работе с БД лучше использовать PDO с механизмом prepared statement: http://php.net/manual/ru/pdo.prepared-statements.php |
Ответ: БД MySQL проверка данных
Randomize, так он даже не упоминал md5. А в password_hash можно было использовать соль до php7, судя по документации. В общем-то речи про алгоритм хэширования вообще не шло, лишь было сказано, что нужно это делать. Правда, я не понял, зачем хэшировать ещё и логин (вместо соли?) и контрольную сумму (чего? логина и пароля?).
|
Ответ: БД MySQL проверка данных
Цитата:
PHP код:
Логин скорее не хешировать, а соль от него делать, ну идея нормальная, правда, опять же, мало смысла в этом - радужные таблицы. |
Ответ: БД MySQL проверка данных
Всем спасибо за ответы. :)
|
Ответ: БД MySQL проверка данных
Еще такой вопрос. Хочу ограничить доступ к программе, чтоб под одним логином не смогли войти допустим два клиента, верно ли я понимаю что в бд нужно создать некую переменную и когда пользователь подключен она допустим меняется на единицу но перед подключением проверяет ее. Если она равна нулю то подключаемся, если нет то ошибка.
|
Ответ: БД MySQL проверка данных
Цитата:
|
Часовой пояс GMT +4, время: 21:25. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot