87193155 2012-12-30
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
Referer其实应该是英文单词Referrer,不过拼错的人太多了,所以编写标准的人也就将错就错了。
Request.ServerVariables("HTTP_REFERER")的用法(防外连接)下列情况是从浏览器的地址栏正常取得Request.ServerVariables("HTTP_REFERER"):
1)直接用<ahref="">
2)用Submit或<inputtype="image">提交的表单(POST或GET)
3) 使用JAvaScript提交的表单(POST或GET)下面我们再看看Request.ServerVariables("HTTP_REFERER")不能正常取值的情况:
1)从收藏夹链接
2)单击主页或自定义的地址
3)在浏览器中直接输地址
4)使用JavaScript的Location.href或者是Location.replace()
5)<%Response.Redirect%>
6)<%Response.AddHeader%>或者是<metehttp-equiv="refresh">转向
7) 用XML加载地址用途:
1、防止盗连,比如我是个下载软件的网站,在下载页面我先用referer来判断上一页面是不是自己网站,如果不是,说明有人盗连了你的下载地址。
2、电子商务网站的安全,我在提交信用卡等重要信息的页面用referer来判断上一页是不是自己的网站,如果不是,可能是黑客用自己写的一个表单,来提交,为了能跳过你上一页里的javascript的验证等目的。