Ted's Blog

Happy coding

HTTP Referer

关于HTTP Referer使用非常简单,使用场合比较多的是用于页面统计、图片防盗链(可以在apache 中进行设置,从非自己domain或空Referer过来的请求一律拒绝)等;但还是有一点值得注意:Referer是不安全的,客户端可以通过设置改变 Request中的值,尽量不要用来进行安全验证等方面;下面介绍下默认情况下Referer可能出现为空的场景:

1、页面从Https跳转到Http;应该是处于安全考虑,该点在RFC-2616中有说明;主流浏览器均遵守这个规则,比如IE、FF;但默认情况下Https到Https是会发送Referer的;

2、直接在浏览器中输入目标URL;

3、由于FF提供了很强大的自定义参数设置功能,所以我们可以通过about:config页面修改以下两个选项的默认设置:

network.http.sendRefererHeader (default=2)
设置Referer的发送方式,0为完全不发送,1为只在点击链接时发送,在访问页面中的图像什么的时候不发送,2为始终发送。

network.http.sendSecureXSiteReferrer (default=true)
设置从一个Https访问到另外Https页面的时候是否发送Referer,true为发送,false为不发送。