1

たとえば、次のURLがあります: https ://www.domain.com/pdf.php?url = http://www.domain.com/report.php?id = 341

アクセスを開こうとしreport.phpているPHPの使用をどうにかして検出できるかどうか知りたいのですが。pdf.phpreport.php?id=341

それが可能であれば、後でそのreport.phpをpdf.php、invoice.phpなどでのみ呼び出すことができるように制限します。

基本的に、report.phpが人間ではなくサーバーから要求されていることを確認したいと思います。

おそらくセキュリティリスクはありますか?

私の質問が理にかなっていることを願っています。前もって感謝します。

4

3 に答える 3

1

ユーザーが使用した場所を確認できます

$_SERVER['HTTP_REFERER']

例えば

if ( $_SERVER['HTTP_REFERER'] == "valid_url.php" ) ...

ただし、php マニュアルに次のように記載されているため、これは安全ではありません。これはユーザー エージェントによって設定されます。すべてのユーザー エージェントがこれを設定するわけではなく、機能として HTTP_REFERER を変更する機能を提供するユーザー エージェントもあります。要するに、本当に信用できない。

于 2013-01-10T19:30:42.440 に答える
1

以下を使用して、$_SERVER 配列の完全な内容を表示することができます。探している必要な変数が表示されます。

print_r($_SERVER);
于 2013-01-10T19:47:59.497 に答える
0

pdf.phpなどにロジックを追加する方がはるかに優れていますinvoice.php。GET/POST パラメータを処理する必要があります。プレーンな PHP を使用している場合は、何らかの関数を作成し、それを他のすべての Web アクセス可能な php ファイルの先頭に配置します。例えば

if(!check_get_from($_GET)) die; 

ただし、ベスト プラクティスは、エントリ ポイントを 1 つだけにすることです (index.php)。

于 2013-01-10T19:23:42.317 に答える