0

$ ENV {'HTTP_REFERER'}と同じくらい簡単ですか?または私がする必要がある他の何かがありますか?

例:個人用サイト:sample.php

iFrameを使用した呼び出しサイト:somesite.com

読み込み時にsample.phpを使用して、入力に「somesite.com」を変数として使用できるようにする必要があります。

4

4 に答える 4

5

インラインフレームと通常のページに違いはありません。そして、最初にインラインフレームをロードするsrcと、HTTPリファラーが送信されます。

于 2009-08-26T08:40:21.147 に答える
3

まず第一に、あなたのページはリファラーが存在することや正しいことに依存してはなりません:それはブラウザによって送信される情報であり、次のいずれかを行うことができます:

  • 無効にする(たとえば、一部のファイアウォール/アンチウイルスはその情報を削除します-または以前に削除しました)
  • または変更/偽造(少し検索する場合は、たとえば、これを非常に簡単に偽造できるFirefox拡張機能が必要です)


詳細については、たとえば、次を参照してください。

これらの投稿は両方とも私に「同意」します^^


今、あなたはいくつかの機能を追加するためにそれを思い切って使うことができます; しかし、あなたはあなたのウェブサイトが機能するためにそれを信頼してはいけません;-)

于 2009-08-16T17:35:38.410 に答える
1

親URLにアクセスするための真に信頼できる方法として、親URLを埋め込むときに親URLを含むiframesrcにGETパラメーターを追加できます。Javascriptを使用して、埋め込みとともにこれを自動的に追加できます。

<body>タグの最後にiframeを埋め込む例を次に示します。

var iframe = document.createElement('iframe');
iframe.src = '/sample.php?parent=' + window.location;
document.body.appendChild(iframe);

次に、次の方法でPHPから親URLに確実にアクセスできます。

$parent_url = $_GET['parent'];
于 2009-08-26T09:28:06.637 に答える
0

Pascal MARTINが述べたように、リファラー値を絶対に信頼するべきではありません。

Gumboの答えを拡張する:リファラーはHTTPリクエスト内でヘッダーとして送信されるため、にロードされたスクリプト内でリファラー<iframe>を取得することは、他のスクリプトで取得することとまったく同じです。

ブラウザがそのsrc属性で指定されたページをリクエスト<iframe>すると、他のリソースに対してそのようなHTTPリクエストを送信し、Refererヘッダー値を含めます。

Refererヘッダーの値には、をホストしているページのURLが含まれます<iframe>。したがって、page-with-iframe.phpという<iframe src="sample.php" />名前のPHPスクリプトがあり、それにsample.phpのHTTPリクエストが含まれている場合、次のようになります。

GET /sample.php HTTP/1.1
Host: somesite.com
...
Referer: http://somesite.com/page-with-iframe.php

sample.phpでは、値を取得するために使用し、そこからホットネームsomesite.com解析できます。$ENV{'HTTP_REFERER'}

于 2009-08-26T09:14:54.557 に答える