Http头中的Referer值是很多网站所需要的一个重要参数,同时也是一个广受争议的话题,因为它涉及到网络隐私保护。referer的作用是记录用户在访问一个网页时,是从哪个页面跳转而来的,它会在浏览器向服务器发送http请求时携带着上一个页面的url地址。在本文中,我们将一起探秘referer从http头到网络隐私保护的历程。
一、referer的作用及格式
在Web开发中,Host和Referer这两个Header Field被称之为标准请求头部(Standard Header)。在Https协议下,referer是一个安全漏洞点,因为它可能会包含敏感信息,例如携带着用户账号密码的url地址。对于用户来说,referer是一个非常敏感的个人信息,也可以说是涉及到用户隐私的一种数据。因此,在很多浏览器中,可通过相关设置来隐藏referer,以增加用户隐私安全。
referer信息的格式通常为:Referer:http://www.examples.com/example.htm,它包含了两部分内容:1.Referer这个关键字表示一个跳转来源;2.http://www.examples.com/example.htm表示来源的url地址。
二、referer在应用中的作用
referer在许多应用场景中都有重要的作用。例如:
1.流量统计:在广告监测系统中,使用referer可以统计出流量的来源,从而识别出当前广告的传播效果。
2.钓鱼网站拦截:浏览器通过检查referer信息,判断当前访问的域名是否与上一个域名相同,将会防范一些钓鱼网站的攻击。
3.网站访问日志:referer可以帮助系统管理员分析源站点连入次数,也可以分析出网站的浏览情况以及流量量等。
三、referer的隐患
由于referer可能会携带着敏感信息,例如,用户账号密码等等,因此,在某些应用场合下,referer会成为一个安全漏洞点。例如:
1.xss攻击:攻击者利用xss漏洞,在目标网站上植入一段javascript代码,并将referer改为包含攻击者想要获取的用户cookie的网站地址。
2.网络间接入测试:攻击者可以通过网络间接入攻击,跟踪网站访问者的浏览进程,便于他们对用户进行恶意行为。例如,黑客想要通过判断访问者是在哪些关键词下方进入某个站点,用这些数据发起对站点上关键词的攻击。
四、referer的防范
在生产实践中,Referer的可隐式曝露、可编程改写让Web应用极易受到渗透测试人员和破坏性攻击者的攻击。为了防止referer被利用,我们可以采取一些防御措施:
1.HTTP请求中添加“no-referrer-when-downgrade”标志,或在header头中禁止发送referer的参数;
2.HTTP协议本身的信息安全性不足,可以使用HTTPS协议传递信息,进行数据加密;
3.防止xss攻击,需要对上传的数据进行过滤检测,以防不法分子篡改referer信息;
4.设置referer防盗链,对非法链接进行拦截跳转,提高网站的安全性。
五、结论
referer作为一种网络上的数据格式,被广泛应用于数据统计、流量分析、防护攻击等一系列应用场景。然而,在利用referer函数时,也必须注意referer带来的安全环节。为了增加系统的安全性,我们需要对referer进行合理控制,采取相应的安全技术与措施,如使用HTTPS协议、设置referer防盗链等等,保障用户隐私信息的安全,并规避潜在安全风险。