当前位置:首页 » 《关注互联网》 » 正文

WEB防盗链

16 人参与  2024年09月29日 19:20  分类 : 《关注互联网》  评论

点击全文阅读


什么是防盗链

防盗链不是一根链条,正确的停顿应该是防·盗链——防止其他网站盗用我的链接。

如何实现防盗链

IP黑白名单

直接配置请求者的IP黑白名单。这个方法虽然有效,但必须要知道请求者的具体IP信息,可适用的场景比较有限。

实现方式以nginx为例

nginx allow & deny https://zhuanlan.zhihu.com/p/378026632

1、allow 和 deny 指令在 ngx_http_access_module 模块中。

2、两个指令分别表示允许或禁止源 IP 访问,用于对源 IP 做访问控制。

3、nginx 是按照自上而下的顺序进行匹配,匹配到一个就不往下继续了

4、遇到 return 指令时 return 指令还是会生效

# ngx_http_access_moduleserver {    listen 8080;    server_name _;    charset "utf-8";    location / {        deny all;        allow 192.168.135.1;        #default_type text/plain;        #return 200 "$remote_addr 正常访问 3";        #echo "$remote_addr 正常访问 5";    }}

Referer 防盗链

Referer 代表请求来源。当客户端向服务器发送请求时,一般都会携带 Referer 头,告知服务器该请求是从哪个页面链接过来的。当请求发送到 CDN 节点后,CDN 节点检查请求头中所携带的 Referer 字段的信息,然后禁止或者允许符合特定规则(支持正则匹配)的 Referer 请求。

示例: gitee 使用了此种方式。

有两种情况,Referer不会被发送:

来源页面采用的协议为表示本地文件的“file”或者“data”URL。当前请求页面采用的是非安全协议,而来源页面采用的是安全协议(Https)。
Referer很容易伪造,所以Referer防盗链安全性较低。

User-Agent 防盗链

当你的网站是提供一些文件下载的业务,你有自己的客户端,并且只希望用户从你的客户端去下载,而不希望文件被用户通过迅雷或其他下载工具下载时,此时适合使用User-Agent 防盗链

User Agent 中文名为用户代理,简称 UA,它是一个特殊字符串头,能够让服务器识别客户端使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等信息。它和 Referer 防盗链类似,在开启后 CDN 会针对 HTTP 请求头中的 User-Agent 信息,禁止或者允许符合特定 User-Agent 规则的请求。

每一个客户端都拥有自己的专属 User-Agent,我们可以抓包请求头查询到 User-Agent ,然后将自己的 User-Agent 加入白名单,或者将其他想要禁止的客户端 User-Agent 加入黑名单,从而保证用户只从自己允许的客户端下载内容。

Token 防盗链(时间戳防盗链)

时间戳防盗链可以通过对时间有关的字符串进行签名,将时间、签名信息通过一定的方式传递给CDN边缘节点服务器进行鉴权,从而正确响应合法请求、拒绝非法请求。相比referer防盗链,时间戳防盗链的安全性更强。

原理

时间戳防盗链的目的是使的每个请求的url都具有一定的是“时效性”,所以url本身需要携带过期时间的相关信息,同时还需要确保这个过期时间不能被恶意修改。因此采用md5算法, 将key、过期时间、文件路径等信息进行加密得到签名加入url,并在CDN节点进行验证,当 CDN 节点在验证请求时,除了验证过期时间,同时还会验证该 md5 值是否匹配,对于不匹配的 md5,说明 URL 被篡改,即使请求未过期也会禁止服务。

举例

/test.ts?key=68ddbe535557d6630a19cebde0cb9252&t=1481106349

适用场景

适用于对url有一定时效性的场景。如果盗链者定期的更新url,这种方法也会失效。

回源鉴权防盗链

回源鉴权是一种高级的防盗链方式,需要在源站配置一台鉴权服务器,并设置鉴权方式。之后 CDN 边缘节点每次接受到请求之后,都会回用户源站的鉴权服务器进行验证,验证通过之后才认为是合法请求,CDN 才会继续提供服务。

适用于:

客户技术实力较强,又不希望第三方公司知悉其防盗链原理。CDN无法满足客户特殊的防盗链需求时,可使用回源鉴权防盗链。

点击全文阅读


本文链接:http://zhangshiyu.com/post/166385.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1