web资源防盗链
- 盗链是什么? 为什么要防?
在自己页面上显示一些不是自己服务器的资源(图片、音频、视频、css、js等)
由于别人盗链你的资源会加重你的服务器负担,所以我们需要防止
- 防盗链方法
1、Referer (易伪造referer,安全性低)
2、加密签名 (安全性高)
Referer实现
通过Referer,服务器可以检测到访问目标资源的来源网站,如果是资源文件,则可以跟踪到显示它的网页地址。一旦检测到来源网站不是本站进行阻止。
以Nginx为例,前提加载ngx_http_referer_module模块
//指令valid_referers 全局invalid_refererlocation ~* \.(gif|jpg|png|webp)$ {valid_referers none blocked domain.com *.domain.com ;if ($invalid_referer) {return 403;#rewrite ^/ http://www.domain.com/403.jpg;}}
加密签名实现
以Nginx为例,前提加载第三方模块HttpAccessKeyModule实现防盗链
location ~* \.(gif|jpg|png|webp)$ {accesskey on;accesskey_hashmethod md5;accesskey_arg key;accesskey_signature "mysrc$remote_addr";}
减少HTTP请求次数减少HTTP请求次数
动态页面静态化
优化数据库
使用负载均衡
使用缓存
使用CDN加速
CDN的作用: 解决由于服务端与客户端所在区域的不同,导致影响数据传输速度和稳定性问题,一句话总结就是让数据传输更快更稳定。
