PHP セキュリティ防止プログラム モデル
コードをコピー コードは次のとおりです:
/* PHP アンチインジェクション クロスサイト V1 .0
SQL インジェクションと XSS クロスサイト脆弱性を防ぐために、ページの先頭に require(“menzhi_injection.php”);
を追加します。
##################欠陥と改善##################
まだまだ多くの欠陥がありますプログラムの改善にご協力いただければ幸いです
##################参考文献と謝辞############### ###
Neeao'ASP SQL ユニバーサル アンチインジェクション プログラム V3.0
コードの一部は Discuz から参照されています。
*/
error_reporting(0); ', get_magic_quotes_gpc());
$menzhi_injection="'|;|and|(|)|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|or| char|declare";
menzhi_injection =explode("|",$menzhi_injection);
foreach(array('_GET', '_POST', '_COOKIE','_REQUEST') as $_request) {
foreach($$_request as $ _key => $_value) {
//$_value = strto lower($_value)
$_key{0} != '_' && $$_key = godslashes($ _value); ($menzhi_injection as $kill_key => $kill_value) {
if(substr_count($_value,$kill_value)>0) {
echo ""; unset($_value);
exit();
}
}
//echo "
".$_value;
}
}
function goddslashes($string) {
if( !MAGIC_QUOTES_GPC) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = godslashes($val) );
}
} else {
$string = addlashes($string);
}
}
$string = preg_replace(((#(d{ 3,5}) |x[a-fA-F0-9]{4}));)/', '&\1',str_replace(array('&', '"', '<', ' >'), array('&', '"', '<', '>'), $string));
return $string;
}
?>
使用手順
SQL インジェクションと XSS クロスサイト脆弱性を防ぐために、ページの上部に「require("menzhi_injection.php");」を追加します。このプログラムを呼び出すには、include() の代わりに require() を使用します。これは、require() によって呼び出されたファイルでエラーが発生した場合、プログラムは終了し、include() はそれを無視するためです。そして、require() がファイルを呼び出すと、プログラムが実行されるとすぐに外部ファイルが最初に呼び出されます。 Inculde() は、この行に達したときにのみ実行を開始します。関数の特性に基づいて、require() を選択します。 実際のニーズに応じて $menzhi_injection 変数のフィルター文字を追加または削除して、より良い防御効果を実現することもできます。 さらに、コードを自分で変更すると、予期しない結果が得られる可能性があります。通常のインジェクションは防御できます。次のテストは単なる嘲笑のためのものです。次は 1 文のトロイの木馬のテスト効果です。 「require("menzhi_injection.php");」を覚えておいてください。これは皆さんの興味を引くための単なるギミックですので、ぜひご自身で試してみてください。