PHPアプリケーションセキュリティ防止技術の研究_PHPチュートリアル
PHP セキュリティ防止プログラム モデル
/* PHP アンチインジェクション クロスサイト V1.0
に require(“menzhi_injection.php”)
を追加します。これを達成するには、ページの上部にある SQL インジェクションと XSS クロスサイト脆弱性を全面的に防ぎます。
################欠陥と改善点##################
プログラムにはまだ多くの欠陥があり、皆様も改善にご協力いただけると幸いです
################参考と謝辞##################
Neeao'ASP SQL ユニバーサル アンチインジェクション プログラム V3.0
コードの一部は Discuz! から参照しています!*/
error_reporting(0);
$menzhi_injection="'|;| |(|)|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);
foreach($menzhi_injection as $kill_key => $kill_value) {
if(substr_count($_value,$) kill_value)>0) {
unset($_value);
}
}
//echo "
"
}
関数dadslashes($string) {
if(!MAGIC_QUOT ES_GPC) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = maddslashes($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 クロスサイト脆弱性の普遍的な防止を実現します。このプログラムを呼び出すには、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 要求パケットをハイジャックして変更することでその値を変更できます。このプログラムはこれらの脆弱性を処理できます。しかし、プログラマとして私たちに必要なのは、根本原因から外部変数に対処し、それが起こる前に予防策を講じ、予防策を講じることです。
このプログラムは非常に厄介ですが、どなたでもテストして使用することを歓迎します。コメントや提案があれば、私に直接連絡してください。
おわりに

http://www.bkjia.com/PHPjc/320673.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/320673.html
技術記事

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

PHPは、特に迅速な開発や動的なコンテンツの処理に適していますが、データサイエンスとエンタープライズレベルのアプリケーションには良くありません。 Pythonと比較して、PHPはWeb開発においてより多くの利点がありますが、データサイエンスの分野ではPythonほど良くありません。 Javaと比較して、PHPはエンタープライズレベルのアプリケーションでより悪化しますが、Web開発により柔軟性があります。 JavaScriptと比較して、PHPはバックエンド開発により簡潔ですが、フロントエンド開発のJavaScriptほど良くありません。

PHPとPythonにはそれぞれ独自の利点があり、さまざまなシナリオに適しています。 1.PHPはWeb開発に適しており、組み込みのWebサーバーとRich Functionライブラリを提供します。 2。Pythonは、簡潔な構文と強力な標準ライブラリを備えたデータサイエンスと機械学習に適しています。選択するときは、プロジェクトの要件に基づいて決定する必要があります。

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。

PHPは、特にWeb開発の分野で、最新のプログラミングで強力で広く使用されているツールのままです。 1)PHPは使いやすく、データベースとシームレスに統合されており、多くの開発者にとって最初の選択肢です。 2)動的コンテンツ生成とオブジェクト指向プログラミングをサポートし、Webサイトを迅速に作成および保守するのに適しています。 3)PHPのパフォーマンスは、データベースクエリをキャッシュおよび最適化することで改善でき、その広範なコミュニティと豊富なエコシステムにより、今日のテクノロジースタックでは依然として重要になります。

PHPでは、弱い参照クラスを通じて弱い参照が実装され、ガベージコレクターがオブジェクトの回収を妨げません。弱い参照は、キャッシュシステムやイベントリスナーなどのシナリオに適しています。オブジェクトの生存を保証することはできず、ごみ収集が遅れる可能性があることに注意する必要があります。

\ _ \ _ Invokeメソッドを使用すると、オブジェクトを関数のように呼び出すことができます。 1。オブジェクトを呼び出すことができるように\ _ \ _呼び出しメソッドを定義します。 2。$ obj(...)構文を使用すると、PHPは\ _ \ _ Invokeメソッドを実行します。 3。ロギングや計算機、コードの柔軟性の向上、読みやすさなどのシナリオに適しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版
便利なJavaScript開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
