Web 防盗链

文章目录

  • 什么是防盗链
  • 防盗链工作原理
  • 怎么防盗链
    • referer方式
    • 签名方式

什么是防盗链

防止别人盗用自己服务器资源,如图片、音乐以及视频。一般是小站盗用大站。

防盗链工作原理

通过referer或者签名,服务器可以检测请求的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。一旦检测到来源不是本站,则进行阻止。

怎么防盗链

referer方式

Nginx 模块 ngx_http_referer_module 用于阻挡来源非法的域名请求,Nginx 指令 valid_refers,全局变量 $invalid_referer。

location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|iso|7z|msi|exe)$ {

     valid_referers none blocked *.ithov.com ithov.com;

     if ($invalid_referer) {

     #rewrite ^/ http://www.ithov.com/index.html;

     return 404;

      }

}

由于 referer 可以伪造,所以这个方式并非绝对可靠,仅仅阻止了一般的盗链行为

签名方式

使用第三方模块 HttpAccessKeyModule 实现 Nginx 防盗链

location ~ .*\.(wma|wmv|asf|mp3|mmf|zip|rar|iso|7z|msi|exe)$ {

  accesskey             on;

  accesskey_hashmethod  md5;

  accesskey_arg         "key";

  accesskey_signature   "mypass$remote_addr";

}

在php中渲染页面时,需要在图片URL后面加上一个参数

$key = md5('mypass' . $_SERVER['ROMET_ADDR']);
echo ' . $key . '>';

这种方式基本可以杜绝防盗链,但是需要在每个资源后面加上参数,还是挺麻烦的

你可能感兴趣的:(Web 防盗链)