如何使用HTTP Referer

你可以用引用过程来做的事情

您在网站上看到的信息只是这些网站在从网络服务器传输到个人浏览器时传输的一部分数据,反之亦然。 在幕后也有相当数量的数据传输 - 如果你知道如何访问这些数据,你可能能够以有趣和有用的方式使用它! 在本文中,我们将看看在这个过程中传输的一个特定的数据片段 - HTTP引用器。

什么是HTTP Referer?

HTTP referer是由Web浏览器传递给服务器的数据,告诉你读者在进入此页面之前所处的页面。 这些信息可以在您的网站上使用,以提供额外的帮助,为目标用户创建特殊优惠,将客户重定向到相关页面和内容,甚至阻止访问者进入您的网站。 您还可以使用JavaScript,PHP或ASP等脚本语言来阅读和评估引荐来源信息。

使用PHP,JavaScript和ASP收集Referer信息

那么你如何收集这个HTTP引用数据呢? 以下是您可以使用的一些方法:

PHP在一个名为HTTP_REFERER的系统变量中存储引用者信息。 要在PHP页面上显示引用者,你可以写:

if(isset($ _ SERVER ['HTTP_REFERER'])){
echo $ _SERVER ['HTTP_REFERER'];
}

这将检查变量是否有值,然后将其打印到屏幕上。 而不是回声$ _SERVER ['HTTP_REFERER']; 你会放置脚本行来检查各种查阅者。

JavaScript使用DOM来读取引用者。 就像使用PHP一样,您应该检查以确保引用者具有价值。 但是,如果要操纵该值,则应首先将其设置为变量。 下面介绍如何使用JavaScript在页面上显示引用者。 请注意,DOM使用引荐来源的替代拼写,在其中添加一个额外的“r”:

if(document.referrer){
var myReferer = document.referrer;
文件撰写(myReferer);
}

然后,您可以在变量为myReferer的脚本中使用引用者。

ASP和PHP一样,将引用者设置为系统变量。 然后你可以收集这样的信息:

if(Request.ServerVariables(“HTTP_REFERER”)){
Dim myReferer = Request.ServerVariables(“HTTP_REFERER”)
的Response.Write(myReferer)
}

您可以使用变量myReferer根据需要调整脚本。

一旦你有了Referer,你可以用它做什么?

所以获取数据是第1步。你如何去取决于你的具体网站。 当然,下一步是找到使用这些信息的方法。

一旦你有了引用者数据,你可以用它来以多种方式编写你的网站脚本。 你可以做的一件简单的事情就是发布你认为访问者来自哪里。 无可否认,这很无聊,但如果你需要运行一些测试,那可能是一个很好的入门点。

什么是更有趣的例子是,当你使用引用者显示不同的信息,取决于他们来自何处 。 例如,您可以执行以下操作:

通过Referer阻止用户使用.htaccess

从安全角度来看,如果您在某个特定域名的网站上遇到大量引荐垃圾内容,它可以帮助您简单地从您的网站阻止该域名。 如果您使用的是安装了mod_rewrite的Apache,则可以使用几行命令来阻止它们。 将以下内容添加到.htaccess文件中

重写引擎
#选项+ FollowSymlinks
RewriteCond%{HTTP_REFERER} spammer \ .com [NC]
RewriteRule。* - [F]

请记住将spammer \ .com一词更改为您想要阻止的域名。 请记住将\放在域中的任何时段的前面。

不要依赖引用者

请记住,欺骗引荐者是可能的,所以你不应该单独使用引用者来保证安全。 你可以使用它作为你的其他安全的附加组件,但是如果一个页面只能被特定的人访问,那么你应该使用htaccess为设置一个密码