ホームページ バックエンド開発 PHPチュートリアル PHP $_REQUEST 配列のセキュリティ リスク_PHP チュートリアル

PHP $_REQUEST 配列のセキュリティ リスク_PHP チュートリアル

Jul 13, 2016 pm 05:10 PM
ge php post request 使用 判断 できる 安全性 配列 知る

$_REQUEST を使用すると、投稿を直接判断してコードを取得する必要がなくなり、使いやすくなるのは誰でも知っていますが、詳しく考えると、$_REQUEST は怖すぎると感じます。以下の分析を参照してください。

フォーム データを処理するには、PHP の 2 つのスーパーグローバル変数 $_GET と $_POST を使用できることは誰もが知っています。これらの変数は、フォームの送信時にメソッドによって指定されます。さらに、PHP は $_REQUEST 配列も提供します。ただし、$_GET と $_POST のすべてのデータ要素が含まれるだけでなく、スーパーグローバル配列 $_COOKIE のすべてのデータ要素も含まれます。
しかし、考えたことはありますか。これら 3 つの配列のキーが同じである場合、$_REQUEST を使用してどの配列値を取得すればよいでしょうか?何か問題はありますか?
問題を説明するために次のコードを使用します。ここでは $_COOKIE を設定しません。自分で処理してください。

コードは次のとおりですコードをコピー var_dump($_GET['a'],$_POST['a'],$_REQUEST['a']);
?>

デモ

<フォームメソッド= 'post'アクション= 'req.php?a=xxx'>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      




フォームを送信すると、取得するページのコンテンツは次のとおりです:
文字列(3) "xxx" 文字列(3) "yyy" 文字列(3) "yyy"

同じ内容ですが、$_REQUEST で POST の値が GET の値を上書きします。何が起こっているのでしょうか?

実際、これは PHP 設定ファイルで設定されています。php.ini 設定ファイルの 466 行目に次の内容があります。


コードは次のとおりです

コードをコピー; このディレクティブは、PHP が GET、POST、Cookie を登録する順序を記述します。 ; 環境変数と組み込み変数 (それぞれ G、P、C、E、S) ; EGPCS または GPC と呼ばれます) 登録は左から右に行われます ; 値は古い値をオーバーライドします。 variables_order = "EGPCS" $_REQUEST[] には $_POST[] $_GET[] の機能がありますが、$_REQUEST[] の方が遅いです。 post メソッドと get メソッドを通じて送信されたすべてのデータは、$_REQUEST 配列を通じて取得できます




この EGPCS は、$_REQUEST 配列を使用してコンテンツを取得する優先順位を示しています。その文字の意味は次のとおりです。E は $_ENV を表し、G は $_GET を表し、P は $_POST を表し、C は $_COOKIE を表し、S は $_SESSION を表します。デフォルトのデータ書き込み方式は EGPCS であるため、POST に含まれるデータは GET の同じキーワードを使用してデータを上書きします。


http://www.bkjia.com/PHPjc/629664.htmlwww.bkjia.com

tru​​e

技術記事 $_REQUEST を使用すると、投稿を直接判断してコードを取得する必要がなくなり、使いやすくなるのは誰でも知っていますが、詳しく考えてみると、$_REQUEST は怖すぎると感じてしまいます。以下のスコアをチェックしてください...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPおよびPython:さまざまなパラダイムが説明されています PHPおよびPython:さまざまなパラダイムが説明されています Apr 18, 2025 am 12:26 AM

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

PHPとPythonの選択:ガイド PHPとPythonの選択:ガイド Apr 18, 2025 am 12:24 AM

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

PHPとPython:彼らの歴史を深く掘り下げます PHPとPython:彼らの歴史を深く掘り下げます Apr 18, 2025 am 12:25 AM

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

PHPの影響:Web開発など PHPの影響:Web開発など Apr 18, 2025 am 12:10 AM

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

PHPの継続的な使用:その持久力の理由 PHPの継続的な使用:その持久力の理由 Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

session_start()が複数回呼び出されるとどうなりますか? session_start()が複数回呼び出されるとどうなりますか? Apr 25, 2025 am 12:06 AM

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

IISとPHPの互換性:ディープダイビング IISとPHPの互換性:ディープダイビング Apr 22, 2025 am 12:01 AM

IISとPHPは互換性があり、FastCGIを通じて実装されています。 1..phpファイル要求を構成ファイルを介してFastCGIモジュールに転送します。 2. FASTCGIモジュールは、PHPプロセスを開始して、パフォーマンスと安定性を改善するための要求を処理します。 3。実際のアプリケーションでは、構成の詳細、エラーデバッグ、パフォーマンスの最適化に注意する必要があります。

セッションIDをどのくらいの頻度で再生する必要がありますか? セッションIDをどのくらいの頻度で再生する必要がありますか? Apr 23, 2025 am 12:03 AM

セッションIDは、機密操作の前、30分ごとにログイン時に定期的に再生する必要があります。 1.セッション固定攻撃を防ぐためにログインするときにセッションIDを再生します。 2。安全性を向上させるために、敏感な操作の前に再生します。 3.定期的な再生は長期的な利用リスクを減らしますが、ユーザーエクスペリエンスの重量を量る必要があります。

See all articles