HTTP referer说明

来源:互联网 发布:阿里云系统怎么样os 编辑:程序博客网 时间:2024/06/04 18:36

一、说明

对Application_BeginRequest断点调试结果说明

protected void Application_BeginRequest(object sender, EventArgs e){    string absolutePath = Request.Url.AbsolutePath;    Uri referer = Request.UrlReferrer;}

1.从浏览器直接输入地址请求 referer为空

2.对网站第一次请求或强制刷新,浏览器会获取网站根目录的favicon.ico 文件

3.对于网页的图片、样式、js等请求时referer中会带有当前静态内容所属的页面地址

4.如果是从外网页面点击来的请求也会带有外网的页面地址


二、 描述

referer, 或 HTTP referer, 是HTTP表头的一个字段,用来表示从哪儿连结到目前的网页,采用的格式是URL。换句话说,借着 referer ,目前的网页可以检查访客从哪里而来,这也常被用来对付伪造的跨网站请求。

而 dereferer 则是将 referer 资讯剥离,所以网站将无法识别访客从何而来。

Referer的正确英语拼法是referrer。由于早期HTTP规范的拼写错误,为了保持向后兼容就将错就错了。其它网络技术的规范企图修正此问题,使用正确拼法,所以目前拼法不统一。

当访客访问网页时,referer 或 referring page 是前一个网页的URL。如果是图片的话,通常指的就是图片所在的网页。在网页浏览器送往网页服务器的时候,referer 就被包含在HTTP请求方法中。

许多网站都会把 referers 纪录起来以便追踪使用者的动态,大部分的分析软件都会处理这个资讯。但是 referer 资讯可能会有隐私权的问题,部份网页浏览器允许使用者不要送出这个资讯。有些代理服务器和防火墙也 会把 referer 资讯筛选掉,以避免让外部知道非公开的网站位置。缺少了 referer 资讯有可能会造成某些问题:某些服务器会因为缺少了正确的 referer 资讯而进行阻挡,以避免未经授权的图片使用(盗图)或是其他对服务器有影响的行为。针对这样的阻挡,有些代理服务器软件则提供了针对特定网站送出假 referer 资讯的功能的功能。


二、

1 Referer可以记录访问的来源,统计访问量,可以用来防盗链。
2 客户端用js不能篡改Referer,用一些插件什么的可以达到伪造的目的。
3 可以使用Fiddler修改Referer。
选择 fiddler窗口的rules->customize rules…在打开的CustomRules.js记事本窗口中,找到如下位置 static function OnBeforeRequest(oSession: Session) {   //  Sample Rule: Color ASPX requests in RED   //  if (oSession.uriContains(“.aspx”)) { oSession["ui-color"] = “red”; }
在这一句的后面加上   if(oSession.oRequest.headers.ExistsAndContains(“Referer”,”220.170.79.105″))   {    oSession.oRequest.headers.Remove(“Referer”);   }
4 服务器端修改Referer,通过webClient,直接设置访问可以达到修改目的。
5 其它的一些修改Referer的方式方法。参考:http://www.cnblogs.com/mx3000/archive/2007/12/17/1003239.html
利用Referer防止图片盗链
虽然Referer并不可靠,但用来防止图片盗链还是足够的,毕竟不是每个人都会修改客户端的配置。(一般只允许站内访问)
参考:http://blog.csdn.net/21aspnet/article/details/6197314


0 0
原创粉丝点击