IP黑白名单
直接配置请求者的IP黑白名单。
这个方法虽然有效,但必须要知道请求者的具体IP信息,可适用的场景比较有限。
Referer
Refrere是什么
Referer中文的意思是:参照页面,引用页。
获取Referer
通过请求头的referer字段可以拿到。
Referer请求头包含了当前请求页面的来源页面的地址。服务端一般使用Referer请求头识别访问来源。这个方法比较简单,因为弄清楚想让哪个网站或者不想让哪个网站访问比较容易。
有两种情况,Referer不会被发送:
- 来源页面采用的协议为表示本地文件的“file”或者“data”URL。
- 当前请求页面采用的是非安全协议,而来源页面采用的是安全协议(Https)。
Referer很容易伪造,所以Referer防盗链安全性较低。
时间戳防盗链
时间戳防盗链可以通过对时间有关的字符串进行签名,将时间、签名信息通过一定的方式传递给CDN边缘节点服务器进行鉴权,从而正确响应合法请求、拒绝非法请求。相比referer防盗链,时间戳防盗链的安全性更强。
原理
时间戳防盗链的目的是使的每个请求的url都具有一定的是“时效性”,所以url本身需要携带过期时间的相关信息,同时还需要确保这个过期时间不能被恶意修改。因此采用md5算法, 将key、过期时间、文件路径等信息进行加密得到签名加入url,并在CDN节点进行验证。
鉴权过程
适用于对url有一定时效性的场景。
如果盗链者定期的更新url,这种方法也会失效。
回源鉴权防盗链
介绍
回源的意思就是返回源站。
回源鉴权防盗链就是用户对CDN节点发出请求,节点会对用户请求的链接进行验证,查看用户对该链接是否正常需要。CDN节点可以通过POST或GET向用户鉴权服务器返回需要鉴权的参数,鉴权服务器对于节点的请求鉴定合法的话,鉴权服务器就会发送所请求资源送回节点,用户就可以通过就近节点获取资源。
适用于:
- 客户技术实力较强,又不希望第三方公司知悉其防盗链原理。
- CDN无法满足客户特殊的防盗链需求时,可使用回源鉴权防盗链。