一、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