ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してgetリクエストを無効にする方法

PHPを使用してgetリクエストを無効にする方法

PHPz
PHPzオリジナル
2023-03-24 17:09:511601ブラウズ

PHP は、Web アプリケーションの構築に広く使用されている、人気のあるサーバー側プログラミング言語です。 PHPを使用してWebアプリケーションを開発する場合、セキュリティの確保は非常に重要です。 HTTPリクエストにはGETとPOSTがあり、GETリクエストにはクライアントから送信されるリクエストパラメータがURLに含まれるため、GETリクエストを禁止することでWebアプリケーションのセキュリティを高めることができます。この記事では、PHP を通じて GET リクエストを抑制する方法について説明します。

ステップ 1: リクエスト タイプをクエリする

PHP スクリプトを作成するとき、$_SERVER['REQUEST_METHOD'] パラメータを使用して、現在のリクエストのタイプを判断できます。リクエスト。 GET リクエストの場合、このパラメータの値は「GET」になり、POST リクエストの場合、その値は「POST」になります。したがって、コードの先頭に次の判断ステートメントを追加できます:

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
  header('HTTP/1.1 405 Method Not Allowed');
  exit;
}

このコードは、まず現在のリクエストのタイプが GET かどうかを問い合わせます。そうであれば、「HTTP/1.1 405 メソッド」を返します。 「許可されていません」エラー コードが表示され、スクリプトの実行を停止します。

ステップ 2: $_GET 配列を無効にする

PHP では、$_GET はリクエスト URL で渡されるパラメーターを含む連想配列です。悪意のある GET リクエストを防ぐには、スクリプトの先頭で unset() 関数を使用して、$_GET 配列を空の配列に設定します。

$_GET = array();

これにより、$_GET 配列が非アクティブになり、誰もリクエストを通過できなくなります。 URL 内のパラメータ。

ステップ 3: $_GET の代わりに $_POST を使用する

PHP では、$_POST 配列を使用して POST リクエストにデータを保存できます。データを PHP ページに送信する必要があり、GET リクエストを通じてアクセスできないようにしたい場合は、GET リクエストの代わりに POST リクエストを使用できます。

たとえば、以前に URL のパラメータを使用して検索キーワードを渡していた場合、代わりに非表示フィールドを使用できるようになりました。

<form method="post" action="search.php">
  <input type="text" name="keyword">
  <input type="submit" value="Search">
</form>

この例では、GET の代わりに POST リクエストを使用します。 request 検索リクエストを行います。 PHP ページでは、$_GET['keyword'] を使用する代わりに $_POST['keyword'] を使用して検索キーワードを取得します。

要約すると、GET リクエストの禁止は、Web アプリケーションのセキュリティを強化する効果的な方法です。上記の 3 つの手順により、悪意のあるユーザーが GET リクエストを使用してアプリケーションを攻撃することを効果的に防ぐことができます。

以上がPHPを使用してgetリクエストを無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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