0

Is it just as likely that I might suffer a sql injection on a query to the database (SELECT) as using UPDATE, INSERT etc?

I'm updating to PDO, so should I use 'prepare/exec' when querying the DB, or only when updating?

4

2 に答える 2

2

クエリ(ユーザー入力)で変数を使用している場合は、選択クエリまたは挿入/更新のいずれかです。

selectクエリのように、where句で変数を渡している場合、SQLインジェクションを防ぐためにmysqlにPDOを使用する必要があります。

例: これはクエリです。

select * from login where username = '$username' and password= '$password';

次に、ユーザーが入れようとすると

$username ='admin \' OR 1=1';

コンパイルされたクエリは次のようになります

select * from login where username = 'admin' OR 1=1 and password= '...';

(この方法も間違っています。ログインテーブルからユーザー名を確認し、ユーザーに応じてパスワードを取得してから、言語コードを介して一致させる必要があります。)しかし、例として、選択クエリも注入できます。

同様に参照してください:

于 2013-10-24T10:54:10.833 に答える
2

SQLインジェクションを処理する必要があるクエリで入力(変数)を渡す場合は、挿入、更新、選択、または削除を気にしないでください。

ここで最良の答えを見つけることができます

PHPでSQLインジェクションを防ぐにはどうすればよいですか?

于 2013-10-24T10:58:09.063 に答える