用 Fiddler 演示如何自定义 HTTP_REFERER

作者:vkvi 来源:ITPOW(原创) 日期:2008-5-9

在 ASP 中 Request.ServerVariables("HTTP_REFERER") 用来获得当前页面是从哪里链接过来的,有人通过这个值来防止恶意提交或判断安全,不过非常不幸的是,这个值是可以仿冒的,我虽然是直接打开的网页,但我仍可以告诉服务器,我是从另一个网页链接过来的。下面我们就利用 Fiddler 这个工具来演示,关于 Fiddler 这个工具,您可以参见:Web 调试代理软件-Fiddler

这个演示中,首先我们要做一个网页,用它来获得并显示 Request.ServerVariables("HTTP_REFERER") 值,代码如下:

<html>
<head></head>
<body>
<p>
referer:
<%response.write(Request.ServerVariables("HTTP_REFERER"))%>
</p>
</body>
</html>

然后我们打开 IE 浏览器,启动 Fiddler,并在浏览器中访问这个网址。如果您的网页是在本机,那么请使用您的 IP 访问,而不要用 127.0.0.1 这样的回送地址访问,如果使用回送地址 Fiddler 将抓取不到。

访问完成后,在 Session Inspector 中,单击下面一个框的 Raw,我们可以看到下面的结果:

HTTP/1.1 200 OK
Date: Fri, 09 May 2008 02:41:57 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Content-Length: 70
Content-Type: text/html
Cache-control: private

<html>
<head></head>
<body>
<p>
referer:

</p>
</body>
</html>

可以看出,取不到 Referer。

下面 Fiddler 左边“Web Sessions”中刚才的会话拖到右边,此时会自动切换到“Request Builder”标签,然后在“Request Headers”中加上一行:

Referer: http://www.itpow.com/

单击“Execute!”按钮执行,然后切换到“Session Inspector”标签,在下面框的 Raw 中,可以找到:

<p>
referer:
http://www.itpow.com/
</p>

结论,我们已经成功地自定义了 HTTP_REFERER 值。

相关文章