ガイドの冒頭で、データ フィルタリングは、あらゆる言語およびプラットフォームにおける WEB アプリケーション セキュリティの基礎であると述べました。これには、アプリケーションへのデータ入力とアプリケーションからのデータ出力の検証が含まれます。優れたソフトウェア設計は、開発者が次のことを行うのに役立ちます。
データ フィルタリングが回避できないことを確認する、
違法な情報が正当な情報に影響を与えないことを確認する、
識別するデータのソース。
データ フィルタリングをバイパスできないようにする方法についてはさまざまな見解があり、そのうちの 2 つは他の見解よりも一般的であり、より高いレベルの保証を提供します。
スケジュール方法
この方法は、単一の PHP スクリプト (URL 経由) でスケジュールされます。他の操作は、必要に応じて include または require を使用して含められます。このアプローチでは通常、各 URL にディスパッチ用の個別の GET 変数を渡す必要があります。この GET 変数は、スクリプト名を置き換えるより単純化された設計と考えることができます。例:
http://a.org/dispatch.php?task=PRint_formdispatch.php は唯一のルート ファイル (ドキュメント ルート) です。これにより、開発者は 2 つの非常に重要な作業を行うことができます:
dispatch.php の先頭にいくつかのグローバル セキュリティ処理を実装し、これらの処理がバイパスできないようにします。
特に一部の特殊な目的の制御フロー操作において、データ フィルタリングを実行する必要がある場所を簡単に判断できます。
dispatch.php スクリプトの詳細については、次の例を参照してください:
これが公的にアクセス可能な唯一の PHP スクリプトである場合は、次のことを確認してください。このプログラムの設計により、最初のグローバル セキュリティ処理がバイパスできないことが保証されているということです。また、開発者は特定のタスクの制御フローを簡単に確認できます。たとえば、コード全体を閲覧しなくても簡単にわかります。$form_valid が true の場合、end.inc は process.inc がインクルードされる前であり、false に初期化されたばかりであるため、ユーザーに表示される唯一のものです。 process.inc の内部ロジックによって true に設定されると判断できます。それ以外の場合は、フォームが再度表示されます (関連するエラー メッセージが表示される可能性があります)。
注意
(dispatch.php ではなく)index.php などのディレクトリ指定のファイルを使用する場合は、http://a.org/?task=print_form のような URL アドレスを使用できます。
ApacheForceType リダイレクトまたは mod_rewrite を使用して、URL アドレス http://a.org/app/print-form を調整することもできます。
含まれるメソッド
もう 1 つの方法は、すべてのセキュリティ処理を担当する単一のモジュールを使用することです。このモジュールは、すべてのパブリック PHP スクリプトの先頭 (または最先頭) に含まれています。次のスクリプトを参照してください security.inc
この例では、送信された各フォームには一意の検証値フォームが含まれているとみなされ、security.inc は必要なフォームのデータを個別に処理します。フィルタリングされる。この要件を実装する HTML フォームは次のとおりです:
$allowed という配列はチェックに使用されますどのフォーム変数が許可されるか、このリストはフォームが処理される前に一貫している必要があります。プロセス制御は何を実行するかを決定し、実際のフィルター処理されたデータは process.inc に到着します。
注意
security.inc が常にすべてのスクリプトの先頭に含まれるようにするより良い方法は、auto_prepend_file 設定を使用することです。
フィルタリングの例
ホワイトリストの確立はデータフィルタリングにとって非常に重要です。遭遇する可能性のあるすべてのタイプのフォーム データの例を示すことは不可能であるため、いくつかの例は一般的な理解を助けることができます。
次のコードはメール アドレスを検証します:
次のコードは、$_POST['color'] の内容が赤、緑、または青であることを確認します:
[/code]
次のコードは、$_POST['num'] が整数であることを確認します。
[code]
以下のコード$_POST['num'] が float であることを確認します:
名前変換
前の各例で使用した配列$クリーン。これは、開発者がデータが侵害される可能性があるかどうかを判断するための良い方法です。 データを検証した後は、決して $_POST または $_GET にデータを保存しないでください。開発者は、スーパー グローバル配列に保存されたデータを常に完全に疑う必要があります。
$clean を使用すると、フィルタリングされていないものについて考えるのに役立ち、ホワイトリストの役割に似ていることを付け加えておきます。セキュリティレベルを向上させることができます。
検証済みのデータを $clean に保存するだけの場合、データ検証における唯一のリスクは、フィルターされていない危険なデータではなく、参照する配列要素が存在しないことです。
タイミング
PHP スクリプトの実行が開始されると、すべての HTTP リクエストが終了したことになります。この時点では、ユーザーがスクリプトにデータを送信する機会はありません。したがって、(register_globals がオンになっている場合でも) スクリプトにデータを入力することはできません。このため、変数を初期化することは非常に良い方法です。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPでは、クローンキーワードを使用してオブジェクトのコピーを作成し、\ _ \ _クローンマジックメソッドを使用してクローン動作をカスタマイズします。 1.クローンキーワードを使用して浅いコピーを作成し、オブジェクトのプロパティをクローン化しますが、オブジェクトのプロパティはクローニングしません。 2。\ _ \ _クローン法は、浅いコピーの問題を避けるために、ネストされたオブジェクトを深くコピーできます。 3.クローニングにおける円形の参照とパフォーマンスの問題を避けるために注意し、クローニング操作を最適化して効率を向上させます。

PHPはWeb開発およびコンテンツ管理システムに適しており、Pythonはデータサイエンス、機械学習、自動化スクリプトに適しています。 1.PHPは、高速でスケーラブルなWebサイトとアプリケーションの構築においてうまく機能し、WordPressなどのCMSで一般的に使用されます。 2。Pythonは、NumpyやTensorflowなどの豊富なライブラリを使用して、データサイエンスと機械学習の分野で驚くほどパフォーマンスを発揮しています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
