ホームページ >バックエンド開発 >PHPの問題 >PHP経由でGETパラメータを取得する方法

PHP経由でGETパラメータを取得する方法

PHPz
PHPzオリジナル
2023-03-31 09:10:445084ブラウズ

Web 開発では、PHP が人気のバックエンド言語です。 PHP でアプリケーションを作成する場合、非常によくある質問は、GET リクエストを通じて URL からパラメータを取得する方法です。この記事では、この問題について検討し、PHP を通じて GET パラメーターを取得する方法について説明し、いくつかのヒントと考慮事項を紹介します。

まず、PHP を使用して GET パラメータを取得する方法を見てみましょう。 PHP を使用して GET パラメータを取得するのは非常に簡単で、$_GET 変数を使用するだけです。 GET リクエストが開始され、パラメータが送信されると、これらのパラメータは「?key=value」の形式で URL の末尾に追加されます。 $_GET 変数には、これらのパラメーターのキーと値のペアが含まれます。たとえば、URL が「http://example.com?name=John&age=30」の場合、対応する $_GET 配列には「name」 => 「John」と「age」 => 「30」の両方のキーが含まれます。 -値のペア。

PHP を使用して GET パラメータを取得するサンプル コードは次のとおりです。

<?php
if(isset($_GET[&#39;name&#39;])) { // 检查是否传入了name参数
 $name = $_GET[&#39;name&#39;]; // 获取name参数的值
 echo "Hello, $name!";
}
?>

上記のコードでは、最初に「name」パラメータが渡されているかどうかを確認します。その場合、その値を $name 変数に保存し、ウェルカム メッセージを出力します。文字列を出力するときに変数を二重引用符で囲んでいることに注意してください。これにより、PHP パーサーは変数値を文字列に埋め込むことができます。

ただし、$_GET 変数を使用して GET パラメーターを取得するだけでは十分に安全ではありません。悪意のあるユーザーは、URL を手動で構築してアプリケーションを攻撃しようとする可能性があります。この攻撃を回避するには、GET パラメータを検証してフィルタリングすることをお勧めします。一般的なフィルタリングおよび検証手法をいくつか示します。

  1. パラメータが存在することを確認する

GET パラメータを処理するときは、未定義の変数を使用しないように注意してください。未定義の GET パラメータを取得しようとすると、PHP は警告を生成し、アプリケーションの脆弱性を明らかにします。これを回避するには、続行する前にパラメータが存在するかどうかを確認する必要があります。サンプル コード:

<?php
if(isset($_GET[&#39;name&#39;])) {
 $name = $_GET[&#39;name&#39;]; // 如果参数存在,获取参数值
} else {
 $name = &#39;&#39;; // 如果参数不存在,设置默认值
}
?>
  1. パラメータのフィルタリングとクリーニング

GET パラメータを取得した後、悪意のある攻撃を防ぐためにパラメータをフィルタリングしてクリーニングする必要があります。クロスサイト スクリプティング攻撃 (XSS) を避けるために、HTML タグは htmlspecialchars() を使用してエスケープする必要があります。サンプルコード:

<?php
if(isset($_GET[&#39;username&#39;])) {
 $username = htmlspecialchars($_GET[&#39;username&#39;]); // 获取参数并转义HTML标签
} else {
 $username = &#39;&#39;;
}
?>
  1. パラメータ値の型と範囲を確認する

パラメータの正確性を確認するには、パラメータ値の型と範囲を確認する必要があります。たとえば、is_numeric() 関数を使用して、引数が有効な数値かどうかを確認できます。サンプル コード:

<?php
if(isset($_GET[&#39;age&#39;])) {
 if(is_numeric($_GET[&#39;age&#39;]) && $_GET[&#39;age&#39;] >= 1 && $_GET['age'] <= 100) {
   $age = $_GET[&#39;age&#39;];
 } else {
   $age = 0;
 }
} else {
 $age = 0;
}
?>

上記のコードでは、is_numeric() 関数を使用して「age」パラメータが有効な数値かどうかを確認し、条件ステートメントを使用して「age」パラメータが 1 の間にあるかどうかを確認します。と 100 。引数が有効な数値でない場合、または範囲が正しくない場合は、デフォルト値が設定されます。

概要:

GET リクエストを通じて URL からパラメータを取得することは、Web アプリケーションの一般的な要件です。 PHP を使用して GET パラメータを取得するのは非常に簡単で、$_GET 変数を使用するだけです。ただし、悪意のある攻撃を回避するには、GET パラメータを検証してフィルタリングする必要があります。パラメータを検証するときは、パラメータが存在するかどうかを確認し、htmlspecialchars() 関数を使用して HTML タグをエスケープする必要があります。パラメータをフィルタリングするときは、パラメータのタイプとスコープを検証して、入力したパラメータ値が有効であることを確認する必要があります。これらのヒントを通じて、Web アプリケーションのセキュリティを向上させ、ユーザーのプライバシーとデータのセキュリティを保護できます。

以上がPHP経由でGETパラメータを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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