是否像$ ENV {'HTTP_REFERER'}一样简单?还是有什么我需要做的?如何在加载到iFrame中时让siteURL调用我的页面?
例子: 我的网站:sample.php
呼叫网站瓦特/ IFrame:请somesite.com
我想sample.php加载时,能够使用 “somesite.com” 输入作为一个变量。
是否像$ ENV {'HTTP_REFERER'}一样简单?还是有什么我需要做的?如何在加载到iFrame中时让siteURL调用我的页面?
例子: 我的网站:sample.php
呼叫网站瓦特/ IFrame:请somesite.com
我想sample.php加载时,能够使用 “somesite.com” 输入作为一个变量。
内联框架和普通页面没有区别。最初加载一个内联框架src
将发送HTTP引用。
首先,你的页面不能在Referer的存在,也没有正确的依赖:它是由浏览器发送的信息,并可以:
欲了解更多信息,请参见,例如:
这些职位都 “同意” 我^^
现在,你可以enventually用它来添加一些功能;但你不能依靠它为您的网站上工作;-)
正如Pascal MARTIN所提到的,您绝对不应该相信Referer的值。
扩展Gumbo的答案:因为Referer是作为HTTP请求中的头部传输的,因此在中加载的脚本中检索它与检索任何其他脚本的内容完全相同。
当浏览器请求中的src
属性指定的页面时,它将提交类似于任何其他资源的HTTP请求,并且将包含Referer
标头值。
Referer
标头的值将包含承载的页面的URL。所以,如果你有一个PHP脚本名为页面与-iframe.php,它包含<iframe src="sample.php" />
为sample.php HTTP请求可能看起来像:
GET /sample.php HTTP/1.1
Host: somesite.com
...
Referer: http://somesite.com/page-with-iframe.php
在sample.php你会使用$ENV{'HTTP_REFERER'}
来检索值,并从那里你可以解析出热点名称somesite。com。
要真正可靠地访问父URL,您可以在嵌入时将一个GET参数添加到包含父URL的iframe src中。您可以使用Javascript将其与嵌入一起自动添加。
下面是在<body>
标签结束嵌入的iframe一个例子:
var iframe = document.createElement('iframe');
iframe.src = '/sample.php?parent=' + window.location;
document.body.appendChild(iframe);
然后,您可以可靠地从PHP与访问父网址:
$parent_url = $_GET['parent'];
我已经知道的东西。我正在使用站点名称+公共密钥+私钥作为我正在做的某些日志记录,我只是想知道如何在页面在iFrame内调用时获取它。它是一样的还是其他的东西?这是我的问题,在你漫不经心的问题上,没有回答。 – RiddlerDev 2009-08-17 01:18:14
只是为了完整:Firefox的插件是“篡改数据”和“修改头文件”。 – 2009-08-26 08:56:14