だから私はSQLインジェクション攻撃の基本を知っています。エントリはサニタイズされていません。それで
SELECT id FROM users WHERE username='$username' AND password='$password'
($ passwordはハッシュされていることに注意してください)$username=x'
またはで無効になります1=1; --
友人によると、ソースコードに\ n文字を挿入すると、残りのクエリをコメントアウトすることはできません。だからあなたが持っているなら
Select id
from users
where username='$username'
and password='$password'
phpで、それをクエリに送信すると、ユーザー名をコメントアウトしようとしてもand password='$password'
、が実行されようとするため、エラーが発生します。
私はそれを試しました、そして彼は正しいようです。だから、私の質問は、データベース入力をサニタイズする必要がありますが、これはこのような攻撃を防ぐのですか、それともそれを回避する方法はありますか?
それが重要かどうかはわかりませんが、ここではmysqlについて具体的に話しています。