Php推荐人的工作与否?

时间:2010-06-09 16:45:39

标签: php javascript html security apache

我需要知道我网站上某个页面的引荐服务器。

有没有安全的方法来检查用户“来到”页面FROM的位置?

我尝试将其上传到我的服务器,但是当我将地址写入浏览器地址栏中的文件时,这根本不会输出任何内容:

    <?php echo $_SERVER['HTTP_REFERER']; ?>

我需要检查一下,以便在页面上显示链接......

由于

4 个答案:

答案 0 :(得分:5)

  

有没有安全的方法来检查用户“来到”页面FROM的位置?

不是真的。与所有HTTP标头一样,可以轻松修改此标头。此外,浏览器还可以选择永不发送推荐人。

当浏览器 发送引荐来源时,

$_SERVER['HTTP_REFERER'];会有效,但是无法验证它是否属实。

  

我尝试将其上传到我的服务器,但是当我将地址写入浏览器地址栏中的文件时,这根本不会输出任何内容

在这种情况下,浏览器不会发送引荐来源,因为您没有来自任何地方。

答案 1 :(得分:3)

尝试使用$_SERVER['HTTP_REFERER']。请注意,它是'HTTP_REFERER',不是,正如人们所期望的那样,'HTTP_REFERRER'

另外,请注意此变量的documentation

  

页面的地址(如果有的话)   将用户代理引用到当前   页。这是由用户代理设置的。   并非所有用户代理都会设置此项,并且   一些提供修改的能力   HTTP_REFERER作为一项功能。简而言之,   它真的不可信任。

此外,ceejayoz注意到如果你直接访问某个页面并且没有关注链接,那么大多数浏览器都不会设置推荐人。

答案 2 :(得分:3)

两件事:

应为$_SERVER['HTTP_REFERER'](注意第一单R)。永生化错字的案例,但这就是它的样子。 :)

其次,仅当您通过单击链接到达页面时才会发送http-referer。在地址栏中键入链接会绕过它。

但是要回答你的实际问题,有几个人设置了他们的浏览器,因此没有发送任何引用,这意味着没有可靠的方法来确定链接,甚至不幸。 (更不用说数据可以被篡改,因为它是由客户端发送的。)

答案 3 :(得分:1)

  

我尝试将其上传到我的服务器,但是当我将地址写入浏览器地址栏中的文件时,这根本不会输出任何内容:

那是因为在那种情况下没有推荐人 - 你把它输入浏览器地址栏。