登録ユーザーを認証するときに、リクエストを行います。たとえば、私が見つけた1つの例:
$user = $_POST['user'];
$pw = $_POST['password'];
$sql = "SELECT user,password FROM users
WHERE user='$user'
AND password='$pw'
LIMIT 1";
$result = mysql_query($sql);
if (mysql_num_rows($result)){
//we have a match!
}else{
//no match
}
LIMIT 1
では、最後に持つメリットやポイントは何でしょうか? また、user_id を選択できるのに、なぜユーザーとパスワードを選択する必要があるのでしょうか。
しませんか
SELECT user_id FROM users
WHERE user = '{$user}'
AND password = '{$pw}'
まったく同じロジスティクスですが、コードは短くなりますか?
編集: この小さな詳細について考えると、ハッカーを防ぐためのもう 1 つのチェックが見つかりました。同じ電子メールとパスワードを持つ複数のユーザーが存在してはならないため、パスワードの代わりに123
文字列' OR password = '*'
(または同様のロジック) を何らかの形で提供すると、クエリが危険にさらされます。次のステップを数えることができるため、制限がないことが役立ちます
if (count($result) > 1) {
echo "we got hacked";
else
<proceed...>