$ ENV {'HTTP_REFERER'}と同じくらい簡単ですか?または私がする必要がある他の何かがありますか?
例:個人用サイト:sample.php
iFrameを使用した呼び出しサイト:somesite.com
読み込み時にsample.phpを使用して、入力に「somesite.com」を変数として使用できるようにする必要があります。
$ ENV {'HTTP_REFERER'}と同じくらい簡単ですか?または私がする必要がある他の何かがありますか?
例:個人用サイト:sample.php
iFrameを使用した呼び出しサイト:somesite.com
読み込み時にsample.phpを使用して、入力に「somesite.com」を変数として使用できるようにする必要があります。
インラインフレームと通常のページに違いはありません。そして、最初にインラインフレームをロードするsrc
と、HTTPリファラーが送信されます。
まず第一に、あなたのページはリファラーが存在することや正しいことに依存してはなりません:それはブラウザによって送信される情報であり、次のいずれかを行うことができます:
詳細については、たとえば、次を参照してください。
これらの投稿は両方とも私に「同意」します^^
今、あなたはいくつかの機能を追加するためにそれを思い切って使うことができます; しかし、あなたはあなたのウェブサイトが機能するためにそれを信頼してはいけません;-)
親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'];
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'}