検索
ホームページphp教程PHP开发PHPアプリケーションのセキュリティ防止技術の研究

PHP セキュリティ防止プログラム モデル

次のようにコードをコピーします。
/* PHP アンチインジェクション クロスサイト V1.0
普遍的な防止を実現するには、ページの先頭に require(“menzhi_injection.php”) を追加します。 SQL インジェクションと XSS のクロスサイト脆弱性。
##################欠陥と改善##################
プログラムにはまだ多くの欠陥がありますが、皆様も改善にご協力いただければ幸いです
##################参照と謝辞###################
Neeao'ASP SQLユニバーサルアンチインジェクションプログラム V3.0
コードの一部は Discuz! から参照しています
|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 = maddslashes($_value)
foreach($menzhi_injection as $kill_key => $kill_value ) {
if(substr_count($_value,$kill_value)>0) {
echo "";
unset($_value)
}
}
///echo "
".$_value ;
}
}
function goddslashes($string) {
if(!MAGIC_QUOT ES_GPC) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[ $key] = daddslashes($val);
}
} else {
$string = addslashes ($string)
}
}
$string = preg_replace(((d{3,5}| x[a-fA-F0-9]{4}));)/', ' &\1',str_replace(array('&', '"', ''), array ('&', '"', ''), $ string));
return $string;
}
?>

使用手順
追加: "require("menzhi_injection.php SQL インジェクションと XSS 国境を越えたサイトの脆弱性を一般的に防止するには、ページの上部に「);」を追加します。このプログラムを呼び出すには、include() の代わりに require() を使用します。これは、require() がエラーでファイルを呼び出した場合、プログラムは終了し、include() はそれを無視するためです。そして、require() がファイルを呼び出すと、プログラムが実行されるとすぐに外部ファイルが最初に呼び出されます。 Inculde() は、この行に到達した場合にのみ実行を開始します。関数の特性に基づいて、require() を選択します。 実際のニーズに応じて $menzhi_injection 変数のフィルター文字を追加または削除して、より良い防御効果を実現することもできます。 さらに、コードを自分で変更すると、予期しない結果が得られる可能性があります。通常のインジェクションは防御できます。次のテストは単なる嘲笑のためのものです。次は 1 文のトロイの木馬のテスト効果です。 「require("menzhi_injection.php");」を覚えておいてください。これは皆さんの興味を引くための単なるギミックですので、ぜひご自身で試してみてください。
不具合と改善点
このプログラムは外部呼び出しのみであるため、外部から送信された変数を処理するだけであり、アプリケーションの体系的な分析は実行しませんので、多くの制限がありますので、注意して使用してください。 GBK エンコーディングを使用するプログラムには、2 バイト エンコーディングの脆弱性のリスクもありますが、このプログラムはこの脆弱性に対処できます。しかし、これらの抜け穴を防ぐには、やはり根本原因から始める必要があります。データベース接続ファイルを処理する必要がある場合は、character_set_client=binary を追加できます。 Discuz!7.0 のデータベース接続クラス db_mysql.class.php は非常によく書かれているので、参照してください。もちろん、これらはこの小さなプログラムの範囲ではありません。

そして、このプログラムは $_SERVER $_ENV $_FILES システム変数をフィルターしません。たとえば、$_SERVER['HTTP_X_FORWARDED_FOR'] システムが IP を取得すると、ハッカーは元の HTTP 要求パケットをハイジャックして変更することでその値を変更できます。このプログラムはこれらの脆弱性を処理できます。しかし、プログラマとして私たちに必要なのは、根本原因から外部変数に対処し、それが起こる前に予防策を講じ、予防策を講じることです。

このプログラムは非常に厄介ですので、どなたでもテストして使用してください。コメントや提案があれば、ディスカッション用にメッセージを残してください。
結論
最後に、皆さんの学業と仕事の成功をお祈りします。関連記事をさらに入手したい場合は、PHP 中国語 Web サイト (www.php.cn) に注目してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。