HTTP Referer详解及Referer控制
HTTP Referer是浏览器向Web服务器发送请求时,作为HTTP头部信息的一部分自动携带的信息。它的主要功能是告诉服务器用户是从哪个页面跳转过来的,以便服务器获取一些处理信息。
什么是HTTP Referer?简单来说,每当你在浏览器中点击一个链接,浏览器就会向目标网站发送一个带有Referer的HTTP请求。这个Referer就像一张“门票”,证明你来自哪里,也就是上一个页面的URL。对于直接输入URL或通过刷新页面访问的情况,Referer则为null。通过设置Referer,可以有效防止盗链问题。
例如,当你从我主页上的链接跳转到朋友网站时,朋友的服务器就能通过HTTP Referer统计出每天有多少用户通过我主页的链接访问他的网站。值得注意的是,Referer其实应该是英文单词Referrer,但由于拼错的人太多,因此编写标准的人也就将错就错了。
除了作为简单的流量统计工具,Referer有时也被用作防盗链机制。即下载时,服务器会判断来源地址是否在网站域名之内,否则就不能下载或显示。很多网站,如天涯就是通过Referer页面来判断用户是否能够下载图片的。
对于某些恶意用户来说,他们可能会伪造Referer来获得某些权限。在设计网站时,开发者需要考虑到这个问题。Referer也可用于电子商务网站的安全验证。在提交信用卡等重要信息的页面,可以通过referer来判断上一页是否为自己的网站。
需要注意的是,虽然Referer在一定程度上并不可靠,但用于防止图片盗链还是足够的。毕竟,不是每个人都会去修改客户端的配置。实现防盗链都是通过服务器的配置文件来设置允许访问的地址。
例如,如果你只希望来自domain.的网站访问你的图片资源,你可以在Apache的配置文件中进行如下设置:
SetEnvIfNoCase Referer "^ local_ref
然后规定被标记了的访问才被允许:
Order Allow,Deny
Allow from env=local_ref
或者:
Order Deny,Allow
Deny from all
Allow from env=local_ref
但是有一些情况是无法获得上一页的Referrer信息的,例如在浏览器地址栏直接输入地址、使用某些特定的刷新方式、在微信对话框中点击链接等。还可以通过在网页中设置特定的meta标签来控制不让浏览器发送referer信息。例如,就是这样一个标签。
HTTP Referer虽然在一定程度上可以帮助网站实现防盗链、流量统计等功能,但也存在一定的安全隐患。在使用时需要根据具体情况进行权衡和选择。开发者还需要考虑到一些无法获取Referrer信息的情况,以便更好地设计和优化网站功能。隐私与安全的双重保障:网站中的Referer策略
在社交网站浏览时,我们经常会遇到各种个人页面与外网链接的交融。这些页面中的链接可能会引导我们进入新的网页,而在这个过程中,网站的URL可能会暴露一些敏感信息。社交网站在处理用户点击链接时,会采取一系列措施来保护用户的隐私。其中之一就是控制Referer的传递。
什么是Referer?简单来说,当你在浏览器中访问一个新网页时,浏览器会发送一个请求给服务器,而这个请求中会包含当前页面的URL,即Referer。服务器可以通过这个信息知道用户是从哪个页面跳转到它的网站的。出于安全和隐私考虑,网站可能需要控制这个Referer的传递。
对于使用了HTTPS的网站来说,URL中的某些参数(如sid等)可能作为用户的身份凭证。当需要引入其他HTTPS网站资源时,保护用户身份凭证信息就显得尤为重要。网站需要采取措施确保用户信息的安全。
这时,Referer策略就派上了用场。通过控制Referer的传递,网站可以更好地遵循Object-Capability Discipline策略,从而保护用户的隐私和安全。
在技术细节方面,Referer的metadata参数可以有以下几种设置:never、always、origin和default。当在文档中加入相应的meta标签时,浏览器客户端会按照设定的值来处理请求。例如,如果设置为“never”,则发起HTTP请求时不会携带Referer;如果设置为“origin”,则只会发送origin部分而不是完整的URL。
这样的设置对于网站来说具有重大意义。例如,遵循Object-Capability Discipline的网站可以通过控制Referer来更好地保护用户的隐私和数据安全。这也为网站提供了一种灵活的方式来处理不同情况下的请求,从而更好地适应不同的安全需求。
值得注意的是,这种Referer策略与rel=noreferrer有所不同。rel=noreferrer可能会覆盖meta标签所设置的值。关于origin信息的具体表现,浏览器客户端可能会有自己的处理方式。例如,可能会在origin后面加一个斜杠作为路径部分。如果origin是唯一的设置,那么referer可能会被忽略。
通过合理设置Referer策略,网站可以更好地保护用户的隐私和数据安全,同时适应不同的安全需求。这种策略的实施也有助于网站遵循相关的安全标准和规范,提升用户体验和信任度。
编程语言
- HTTP Referer详解及Referer控制
- PHP crypt()函数的用法讲解
- jquery渐隐渐显的图片幻灯闪烁切换实现方法
- Yii2压缩PHP中模板代码的输出问题
- php实现购物车功能(上)
- 浅谈Javascript线程及定时机制
- js 数组详细操作方法及解析合集
- PHP如何防止XSS攻击与XSS攻击原理的讲解
- bootstrap实现点击删除按钮弹出确认框的实例代码
- JS扩展方法实例分析
- jQuery树形下拉菜单特效代码分享
- Bootstrap时间选择器datetimepicker和daterangepicker使用实
- vue+axios+element ui 实现全局loading加载示例
- AngularJS动态生成div的ID源码解析
- 基于h5 ajax实现手机定位(demo)
- Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、