MySQL и Аутентификация пользователя - Сильные доказательства для внутреннего запроса по сравнению с после запроса? - PullRequest
0 голосов
/ 01 апреля 2012

Это действительно легкая задача, но я чувствую, что никогда не слышал "официального" приговора по этому вопросу, может быть, потому что это не имеет значения, или, может быть, потому что это так очевидно, и я просто пропустил его.

Итак, на мой взгляд, есть три варианта:

  1. Проверка имени пользователя / пароля в запросе MySQL (при условии, что все было обработано и / или подготовлено, а пароли хранятся в соленом иhashed):

    SELECT COUNT(username) FROM users WHERE user = '$user' && pass = '$pass';
    
  2. Запросите имя пользователя / пароль и проверьте код:

    SELECT user, pass FROM users WHERE user = '$user';
    
  3. Что-то еще я совершенно не знаюиз и должны делать.

Есть ли явная причина, чтобы пойти с 1 или 2, и если есть 3, я все уши.

1 Ответ

1 голос
/ 01 апреля 2012

Я думаю, что версия вашего # 2 лучшая - чаще всего вам захочется узнать что-то еще о пользователе (например, уникальный идентификатор или его полное имя, или что-то, что может иметь отношение к вашему приложению)) поэтому вам нужно будет выполнить еще один запрос после того, как они успешно прошли аутентификацию.

Я не знаю, проверяете ли вы проверку подлинности в MySQL или в коде приложения - это зависит от того, где вы выполняете хеширование / дешифрование / что угодно,и просто нужно быть в безопасности и работать.

Если вы прочитаете информацию как часть шага аутентификации в запросе, то у вас есть все, что вам нужно на потом.И если запрос не удался или не дает ожидаемого хэша пароля, вы можете с ним справиться, и никакого вреда не будет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...