2016-10-07 56 views
1

我想建立一个应用程序,我需要检查重定向到这个页面的引用URL,被引用的页面不会显示...它的工作原理是当它是一个按钮,但是当页面从另一个页面重定向时,它保持空白。 我该怎么做?

+0

你能够提供你如何试图拯救$ _ SERVER [片段'HTTP_REFERER']; –

+0

<?php print $ _SERVER [“HTTP_REFERER”]; ?> – Dermot

回答

3

它将/可能是空的:

  • 当最终用户输入在浏览器地址栏中本身的网站的网址。
  • 通过浏览器维护的书签访问该网站。
  • 作为窗口/选项卡中的第一页访问该网站。
  • 从https URL切换到http URL。
  • 从https网址切换到另一个https网址。
  • 已安装安全软件(防病毒/防火墙/等),从所有请求中删除引荐来源。
  • 是一个代理服务器,它从所有请求中剥离引用者。
  • 通过@BalusC
访问该网站编程方式(如,卷曲)无需设置网址标头(searchbots!)

而且它的意思,你不会总是有一个推荐人地址。所以你根本不能相信推荐人地址。

例如:

有一个小漏洞,每个人都可以很容易地做到这一点:

去任何网站,并注入一种形式码,从该网站发送数据到另一个地方,所以命运网站将从注入网站接收数据,而不是从您那里接收数据。

永远不要相信引用地址。使用SESSION很可能是防止跨站点表单提交的更好路线。

我推荐阅读:

0

您可以设置一个cookie与在5秒到期标题中引用网址值,然后取它在新的脚本和重定向回到引荐

像这样:

$current_url= base64_encode($url); //$url should point to the current url 

setcookie("referrer",$current_url,time()+5); 

现在你可以使用得到存储的URL在你的下一个脚本:

$referrer= base64_decode($_COOKIE['referrer']); 

而且也重定向使用:

header('Location: '.$referrer); 
相关问题