ホームページ >バックエンド開発 >PHPチュートリアル >php、sql、アンチインジェクションプログラムコード
SQL インジェクション攻撃とは、特別な入力を構築し、それらをパラメーターとして Web アプリケーションに渡すことを指します。これらの入力のほとんどは、SQL ステートメントを実行することによって、プログラムが意図した操作を実行しないことです。ユーザーが入力したデータを慎重にフィルタリングして、不正なデータがシステムに侵入するのを防ぎます。
関連する技術原則に従って、SQL インジェクションはプラットフォーム層インジェクションとコード層インジェクションに分類できます。前者は、安全でないデータベース構成またはデータベース プラットフォームの脆弱性によって発生します。後者は主に、プログラマーが入力を慎重にフィルタリングしていないため、不正なデータ クエリが実行されたことが原因です。これに基づいて、SQL インジェクションの原因は通常、次のような側面に現れます: ① 不適切な型処理、② 安全でないデータベース設定、④ 不適切な エラー処理 、⑥ 不適切なエスケープ文字。適切に処理されました。
この記事では主に一般的なアンチインジェクションコードを紹介しますコードは次のとおりです:
function jk1986_checksql() { $bad_str = "and|select|update|'|delete|insert|*"; $bad_Array = explode("|",$bad_str); /** 过滤Get参数 **/ foreach ($bad_Array as $bad_a) { foreach ($_GET as $g) { if (substr_count(strtolower($g),$bad_a) > 0) { echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='index.php';</script>"; exit(); } } } /** 过滤Post参数 **/ foreach ($bad_Array as $bad_a) { foreach ($_POST as $p) { if (substr_count(strtolower($p),$bad_a) > 0) { echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='index.php';</script>"; exit(); } } } /** 过滤Cookies参数 **/ foreach ($bad_Array as $bad_a) { foreach ($_COOKIE as $co) { if (substr_count(strtolower($co),$bad_a) > 0) { echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='index.php';</script>"; exit(); } } } }
以上がphp、sql、アンチインジェクションプログラムコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。