@aopil

Как правильно сравнить API ключ?

На текущий момент реализовано следующим образом:
$request = "SELECT APIKey, FullName FROM users WHERE UserName = '$USER_NAME'";


if((isset($rs->APIKey) && !empty($rs->APIKey)) && (decrypt($rs->APIKey) == $API_KEY))
{
}


Вопрос: Почему бы не использовать $encAPIKey = encrypt($API_KEY) и подставлять его в SQL запрос:
$request = "SELECT APIKey, FullName FROM users WHERE UserName = '$USER_NAME' AND APIKey = '$encAPIKey'";


Возможно, я что-то не понимаю и есть какие-то моменты нарушения безопасности итд?
  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 2
@oxidmod
Возможно для начала надо почитать о sql injection и prepared statements
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Вопрос: Почему бы не использовать
Во первых, так вы не будете знать в чем причина - в логине или в пароле, или в обоих полях. Во вторых, это МОЖЕТ работать с ключами, но с паролями так не работает, там другой алгоритм сверки, и желательно не плодить сущности и создавать максимально близкие по реализации алгоритмы в похожих местах.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы