3

だから私は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について具体的に話しています。

4

1 に答える 1