Web サイトを開発していますが、ユーザー入力またはその他の理由により、いくつかのエラー メッセージを表示する必要があります。このために、error.phpという名前のページがあり、$_GET を使用してエラー番号を取得します。すべてのエラー メッセージは配列に格納されます。
例:
header( 'Location: error.php?n=11' );
しかし、ユーザーが URL にエラー コードを入力して、他のすべてのエラー メッセージを表示することは望ましくありません。それを防ぐために、リファラー ページをホワイトリストに登録し、ホワイトリストにリファラーが見つかった場合にのみエラー メッセージを表示できると考えました。
これにかなり似ているはずです(まだテストしていません;))
$accept = false;
$allowedReferer = array (0=>'page1.php', 'page2.php');
if (in_array($_SERVER['HTTP_REFERER'], $allowedReferer )) {$accept = true;}
if ($accept) { $n=$_GET['n'];echo "Error: " . $errorList[$n];}
この方法は、スパイユーザーを回避するのに十分ですか?
私はPHP5でこれをやっています
ありがとう