HTTP Referer伪造解析
时间:2010-11-22 来源:m4r10
原文作者:m4r10 http://hi.baidu.com/m4r10 转载请注明版权 什么是HTTP Referer?
简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器借此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
不要使用Rerferer的地方
不要把Rerferer用在身份验证或者其他非常重要的检查上,因为Rerferer非常容易在客户端被改变。
如果你想限制用户必须从某个入口页面访问的话,与其使用Referer,不如使用session,在入口页面写入session,然后在其他页面检查,如果用户没有访问过入口页面,那么对应的session就不存在。
个人感觉现在Rerferer除了用在防盗链,其他用途最多的就是访问统计,比如统计用户都是从哪里的链接访问过来的等等。
下面这段是很简单的判断REFERER的来路,如果与SERVER_NAME不同就弹出错误提示:
<% server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) '获取HTTP头 server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) '获取主机名称\域名 If mid(server_v1,8,len(server_v2))<>server_v2 Then response.write "你提交的参数有误,禁止从站点外部提交数据请不要乱改参数!" response.end End If %> <% response.write "正常页面" %>
而伪造REFERER是非常容易的,我们只要通过火狐的一个插件RefControl修改Referer引用,也可以用来XSS或者突破一些防盗链。
下载:https://addons.mozilla.org/zh-CN/firefox/addon/953
只要在站点中输入要伪造的站点,动作选择伪装即可,是不是很简单?
标签分类:
相关阅读 更多 +
排行榜 更多 +