ホームページ >バックエンド開発 >PHPチュートリアル >php、sql、アンチインジェクションプログラムコード

php、sql、アンチインジェクションプログラムコード

怪我咯
怪我咯オリジナル
2017-07-12 15:18:5811173ブラウズ

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(&#39;诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660&#39;);location.href=&#39;index.php&#39;;</script>"; 
exit(); 
} 
} 
} 

/** 过滤Post参数 **/ 

foreach ($bad_Array as $bad_a) 
{ 
foreach ($_POST as $p) 
{ 
if (substr_count(strtolower($p),$bad_a) > 0) 
{ 
echo "<script>alert(&#39;诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660&#39;);location.href=&#39;index.php&#39;;</script>"; 
exit(); 
} 
} 
} 

/** 过滤Cookies参数 **/ 

foreach ($bad_Array as $bad_a) 
{ 
foreach ($_COOKIE as $co) 
{ 
if (substr_count(strtolower($co),$bad_a) > 0) 
{ 
echo "<script>alert(&#39;诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660&#39;);location.href=&#39;index.php&#39;;</script>"; 
exit(); 
} 
} 
} 
}

以上がphp、sql、アンチインジェクションプログラムコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。