HTTP协议--图片资源防盗链

             

Nginx

 location ~* \.(gif|jpg|png|jpeg)$ 
 { 
     expires 30d;
     valid_referers *.blsa.cn *.baidu.com *.google.com *.sogou.com *.so.com;
     if ($invalid_referer) 
     { 
         return 403;
         #rewrite ^/ https://images.blsa.cn/no.bmp;
     } 
 }

以上所有来至 blsa.cn 的域名以及 baidu 和 google 等站点都可以访问到当前站点的图片, 如果来源域名不在这个列表中,那么 $invalid_referer 等于 1,在 if 语句中返回一个 403 给用户,这样用户便会看到一个 403 的页面, 如果使用下面的 rewrite,那么盗链的图片都会显示 403.jpg。none 规则实现了允许空 referer 访问,即当直接在浏览器打开图片,referer 为空时,图片仍能正常显示

Apache

1、打开Apache 重写模块 mod_rewrite, 去掉#号(重启Apache)

2、在需要防盗的网站或目录,写 .htaccess文件,并指定防盗链规则

如何指定:分析HTTP的referer信息,如果不是来自本站,则重写

重写规则:是 jpeg/jpg/gif/png 图片是,并且 referer头与localhost 不匹配时 重写

怎么重写:统一rewirte 到某个防盗链图片上

RewriteEngine On
RewriteCond %{REQUESE_FILENAME} .*\.(jpeg|jpg|gif|png) [NC]
RewriteCond %{HTTP_REFERER} !localhost [NC]
RewriteRule .* no.bmp
#说明
#no.bmp代表盗链显示的图片   [NC] 不区分大小写


Anonymous
滴滴滴
2018-07-25 09:27:47

发表评论 请登录再评论
回到顶部