一、Referer
Referer
是HTTP请求header中的一部分,其表示请求当前资源的客户端来源,当浏览器(或模拟浏览器行为)向web服务器发送请求的时候,头部信息里会携带Referer
。
例如:在 www.google.com 里有一个 www.baidu.com 超链接,当点击这个链接跳转到baidu的时候,浏览器向baidu发出的请求信息里就有:
Referer=http://www.google.com
Referer的正确拼写是referrfer,由于早期的HTTP规范的拼写错误,于是决定将错就错。
1.作用
- 防盗链:
比如只允许某台服务器访问我自己的图片服务器资源,则可校验Http请求包中的Referer
。判断是不是特定服务器的域名,若不是,则拒接响应。
- 防止恶意请求:
对于某些风险较高的文件类型,可使用Referer
使得该类型文件只能来自我所指定的网站。
2.空Refer
Referer
头部的内容为空的情况:
- 浏览器内直接输入URL
- Windows桌面的超链接图标
- 浏览器内书签
- 第三方软件内容中的链接跳入
二、Referer的伪造
1.伪造为ip地址
- 使用Firefox的X-Forwarded-For Header 插件更改ip地址
- 使用brup拦截请求包,在Proxy里面发送到Repeater,将Http头中的
X-Forwarded-For
改为想改的ip
2.伪造为URL
通过brup拦截,再使用Reapter修改Referer
为想指定的URL