Javascript创建了一个iframe,但是iframe无法获取http_referer

时间:2019-01-22 04:09:16

标签: javascript php iframe

我有一个Javascript代码,可以像这样生成iframe

var ifrm = document.createElement("iframe");
       ifrm.setAttribute("src", "https://IFRAMEURL");
       ifrm.style.width = "0px";
       ifrm.style.height = "0px";
       document.body.appendChild(ifrm);

在这个iframe网址中,我有这样的PHP代码

$url = $_SERVER['HTTP_REFERER'];

但是,此iframe无法获得我认为的http_referer,因为它是动态生成的。

该代码在不使用动态生成的iframe时可以正常工作。

是否有获取HTTP_REFERER的修复程序或解决方法?

编辑:我也不控制父URL。父URL添加了JS代码,因此我无法传递任何其他变量。

1 个答案:

答案 0 :(得分:0)

摘自PHP官方文档:

  

将用户代理引至网页的页面地址(如果有)   当前页面。这是由用户代理设置的。并非所有用户代理都会   进行设置,并且某些功能可以将HTTP_REFERER修改为   特征。简而言之,它不能真正被信任。

http://php.net/manual/en/reserved.variables.server.php

为了防止您可以发出通知

$url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "";

但是,如果您要寻找更强大的解决方案,则它可以更好地自己处理。如果您控制上一页,则可以将URL作为参数site.com/page2.php?prevUrl=".urlencode("site.com/page1.php传递。