PHPデータフィルター関数_PHPチュートリアル
1. PHP 送信データフィルタリングの基本原則
1) 変数をデータベースに送信するときは、フィルター処理にaddlashes()を使用する必要があります。たとえば、注入の問題は1つのaddslashes()で解決できます。実際、変数値に関しては、 intval() 関数も文字列のフィルタリングに適しています。
2) php.iniでmagic_quotes_gpcとmagic_quotes_runtimeを有効にします。 magic_quotes_gpc は、get、post、cookie の引用符をスラッシュに変更できます。 magic_quotes_runtime は、データベースに出入りするデータの書式設定の役割を果たします。実際、このパラメータは、インジェクションが夢中になっていた昔から非常に人気がありました。
3) システム関数を使用する場合は、安心してシステム関数を使用できるように、escapeshellarg()、escapeshellcmd() パラメータを使用してフィルタリングする必要があります。
4) クロスサイトの場合は、strip_tags() と htmlspecialchars() の 2 つのパラメータが良く、ユーザーが送信した html と php のタグが変換されます。たとえば、山括弧「<」は「<」などの無害な文字に変換されます。
コードは次のとおりです | |||||||||||||||||||||||||||||||
$new = htmlspecialchars("テスト", ENT_QUOTES); ストリップタグ($text,); 5) 関連する関数のフィルタリングについては、先ほどの include()、unlink、fopen() などと同様に、操作したい変数を指定するか、関連する文字を厳密にフィルタリングすればよいと思います。完璧になります。 2. PHPによる簡単なデータフィルタリング 1)ストレージ:trim($str),addslashes($str) 2) 出力:stripslashes($str) 3) 表示: htmlspecialchars(nl2br($str)) dispatch.php スクリプトの詳細については、以下の例を参照してください:
これが公的にアクセス可能な唯一の PHP スクリプトである場合、そのプログラムは、最初のグローバル セキュリティ処理がバイパスできないように設計されていると確信できます。また、開発者は特定のタスクの制御フローを簡単に確認できます。たとえば、コード全体を閲覧しなくても簡単にわかります。$form_valid が true の場合、end.inc は process.inc がインクルードされる前であり、false に初期化されたばかりであるため、ユーザーに表示される唯一のものです。 process.inc の内部ロジックによって true に設定されると判断できます。それ以外の場合は、フォームが再度表示されます (関連するエラー メッセージが表示される可能性があります)。 注意 (dispatch.php ではなく)index.php などのディレクトリ指定のファイルを使用する場合は、http://example.org/?task=print_form のように URL アドレスを使用できます。 ApacheForceType リダイレクトまたは mod_rewrite を使用して、URL アドレス http://example.org/app/print-form を調整することもできます。 メソッドが含まれます もう 1 つの方法は、すべてのセキュリティ処理を担当する単一のモジュールを使用することです。このモジュールは、すべてのパブリック PHP スクリプトの先頭 (または最先頭) に含まれています。以下の security.inc スクリプトを参照してください
この例では、送信された各フォームには一意の検証値フォームが含まれているとみなされ、security.inc はフィルタリングが必要なフォーム内のデータを独立して処理します。この要件を実装する HTML フォームは次のようになります:
$allowed という配列は、フォームが処理される前に、どのフォーム変数が許可されているかを確認するために使用されます。プロセス制御は何を実行するかを決定し、実際のフィルター処理されたデータは process.inc に到着します。 注意 security.inc が常にすべてのスクリプトの先頭に含まれるようにするより良い方法は、auto_prepend_file 設定を使用することです。 フィルタリングの例 ホワイトリストの確立はデータフィルタリングにとって非常に重要です。遭遇する可能性のあるすべてのフォーム データの例を示すことは不可能なので、いくつかの例は一般的な理解を得るのに役立ちます。 次のコードは電子メール アドレスを検証します:
次のコードは、$_POST['color'] の内容が赤、緑、または青であることを確認します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
![]() ホットAIツール![]() Undresser.AI Undressリアルなヌード写真を作成する AI 搭載アプリ ![]() AI Clothes Remover写真から衣服を削除するオンライン AI ツール。 ![]() Undress AI Tool脱衣画像を無料で ![]() Clothoff.ioAI衣類リムーバー ![]() AI Hentai GeneratorAIヘンタイを無料で生成します。 ![]() 人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最高のグラフィック設定
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
アサシンのクリードシャドウズ:シーシェルリドルソリューション
1週間前
By DDD
R.E.P.O.誰も聞こえない場合はオーディオを修正する方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:Myriseのすべてのロックを解除する方法
3週間前
By 尊渡假赌尊渡假赌尊渡假赌
![]() ホットツール![]() メモ帳++7.3.1使いやすく無料のコードエディター ![]() SublimeText3 中国語版中国語版、とても使いやすい ![]() ゼンドスタジオ 13.0.1強力な PHP 統合開発環境 ![]() ドリームウィーバー CS6ビジュアル Web 開発ツール ![]() SublimeText3 Mac版神レベルのコード編集ソフト(SublimeText3) ![]() ホットトピック
Gmailメールのログイン入り口はどこですか?
![]() ![]()
CakePHP チュートリアル
![]() ![]()
Steamのアカウント名の形式は何ですか
![]() ![]()
NYTの接続はヒントと回答です
![]() ![]() ![]() PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。 ![]() CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。 ![]() ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。 ![]() CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー ![]() CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています ![]() Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、 ![]() |