我们还有对付”反盗链”的方式,对付防盗链,服务器会识别headers中的referer是不是它自己,如果不是,有的服务器不会响应,所以我们还可以在headers中加入referer
例如我们可以构建下面的headers
1
2
|
headers
=
{
'User-Agent'
:
'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
,
'Referer'
:
'http://www.zhihu.com/articles'
}
|
今天做个项目学到了一点,防盗链机制如果允许无 Referer 访问的话,是很容易绕过的。
先说说防盗链的原理,http 协议中,如果从一个网页跳到另一个网页,http 头字段里面会带个 Referer。图片服务器通过检测 Referer 是否来自规定域名,来进行防盗链。
如果盗用网站是 https 的 protocol,而图片链接是 http 的话,则从 https 向 http 发起的请求会因为安全性的规定,而不带 referer,从而实现防盗链的绕过。
比如现在在 cnode 这里,由于我们启用了 https,所以任何 http 的图片几乎都可以直接贴过来并显示了。