0

私は PHP、MySQL ベースのアプリケーションを使用しています。このアプリケーションでは、フロント エンドからサーバー側コードへのいくつかの要求が GET 要求を使用して行われます。$_GET[variable]サーバー側では、 ..を使用してこれらの値を取得します。

私が使用する典型的なURL:

http://localhost/mysite/processdata.php?variable='somedata'

ユーザーがアクションを実行すると、上記の URL が生成されてサーバーに送信されるとします。ただし、ユーザーはいつでも URL のクエリ文字列を変更できます。クエリ文字列がアプリケーションまたはユーザーによって生成されたかどうかを確認するメカニズムはありますか? ユーザー/許可されていないプログラムによって生成された場合、処理を防止しますか?

4

1 に答える 1

0

アプリが送信したのか、ユーザーが送信したのかはわかりません。ただし、情報を検証することはできます。例えば:

$value = $_GET['variable'];
// Assuming you want the variable to be an integer
if ( preg_match( '/^\D+$/', $value ) ) {
  // Use value for what you need
}
else {
  // Show error
}

ただし、車輪を再発明するべきではありません。その機能標準に付属するライブラリが多数あります。CodeIgniterはその一例です。ゼンドは別です。私は CI を好みますが、自分で調べて判断する必要があります。いずれにせよ、それは常に検証に帰着します。

于 2013-09-20T03:54:06.290 に答える