ホームページ >バックエンド開発 >PHPチュートリアル >SQL インジェクション攻撃を防ぐコード_PHP チュートリアル
SQL インジェクション攻撃は、設計の脆弱性を悪用してターゲット サーバー上で SQL コマンドを実行し、その他の攻撃を実行する攻撃です。SQL インジェクション攻撃が成功する主な理由は、SQL コマンドを動的に生成するときにユーザー入力データを検証できないことです。例:
クエリステートメントが select * from admin where username='"&user&"' かつpassword='"&pwd&"'" の場合
その後、私のユーザー名が 1' または '1'='1 の場合
次に、クエリステートメントは次のようになります:
select * from admin where username='1 or '1'='1' and passwd='"&pwd&"'"
このようにクエリステートメントが通過するため、管理者に入ることができますインターフェース。
そのため、予防策を講じる際にはユーザーの入力を確認する必要があります。一重引用符、二重引用符、セミコロン、カンマ、コロン、接続番号などの一部の特殊文字を変換またはフィルタリングします。
フィルタリングする必要がある特殊文字と文字列は次のとおりです:
net user
xp_cmdshell
/add
exec master.dbo.xp_cmdshell
net localgroupAdministrators
select
count
Asc
char
Mid
'
:
"
insert
delete from
drop table
update
truncate
from
%
参考までに、インジェクション攻撃の解決について書いた 2 つの防止コードを示します
SQL インジェクション攻撃を防ぐためのコードの JS バージョン〜:
[CODE START ]
< ;script language="javascript">