HTTP referer说明

2024-05-30 23:08
文章标签 http 说明 referer

本文主要是介绍HTTP referer说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、说明

对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


这篇关于HTTP referer说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017042

相关文章

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Go语言中最便捷的http请求包resty的使用详解

《Go语言中最便捷的http请求包resty的使用详解》go语言虽然自身就有net/http包,但是说实话用起来没那么好用,resty包是go语言中一个非常受欢迎的http请求处理包,下面我们一起来学... 目录安装一、一个简单的get二、带查询参数三、设置请求头、body四、设置表单数据五、处理响应六、超

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

MySQL常见的存储引擎和区别说明

《MySQL常见的存储引擎和区别说明》MySQL支持多种存储引擎,如InnoDB、MyISAM、MEMORY、Archive、CSV和Blackhole,每种引擎有其特点和适用场景,选择存储引擎时需根... 目录mysql常见的存储引擎和区别说明1. InnoDB2. MyISAM3. MEMORY4. A

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

在Dockerfile中copy和add的区别及说明

《在Dockerfile中copy和add的区别及说明》COPY和ADD都是Dockerfile中用于文件复制的命令,但COPY仅用于本地文件或目录的复制,不支持自动解压缩;而ADD除了复制本地文件或... 目录在dockerfile中,copy 和 add有什么区别?COPY 命令ADD 命令总结在Doc

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

springMVC返回Http响应的实现

《springMVC返回Http响应的实现》本文主要介绍了在SpringBoot中使用@Controller、@ResponseBody和@RestController注解进行HTTP响应返回的方法,... 目录一、返回页面二、@Controller和@ResponseBody与RestController