0

現在の呼び出しが実行する必要があるスクリプトの追加パラメーターを使用して、すべての ajax 呼び出しが指す ajax.php ファイルがあります。私の問題は、一部のスクリプトを特定のページのみで実行されるように制限したいことです。たとえば、sendComment.phpからのみ呼び出す必要がありますwww.mysite.com/user/{any user}

私が行ったことは、制限したいすべてのスクリプトの上にこのコードを配置することです。

if(strstr($_SERVER['HTTP_REFERRER'],'mysite.com/{page_allowed_to_exec_script}'){
    Then do stuff here
}

しかし、私が気付いたのは、すべてのブラウザーが HTTP_REFERRER をサポートしているわけではないことです (スペルが間違っている可能性があります。これは記憶に基づいて書いています)。すべてのファイルでこのようなものをハードコードすることは、変更することになるとさらに大きな苦痛になるでしょう..可能なすべてのページを含む配列にすべてのスクリプトを含めることができる方法を探していますそれらを実行し、開始時に ajax.php ファイルでチェックを実行します。

これを達成する方法を知っている人はいますか?

4

1 に答える 1

1

すべてのブラウザでさえ、ある種の「プロキシ」、「ファイアウォール」、または「セキュリティ」スイートによって「リファラー」が送信されない場合があります。そのため、信頼できます。

参照元のページを管理している場合、セッション、Cookie、または URL を使用して情報を渡すことができます。それが絶対に重要な場合、唯一のオプションはセッションです。残りの 2 つは簡単に削除できます。

于 2013-06-22T12:07:30.363 に答える