English
 电子信箱
 加入收藏

  威盾防火墙 >> 新闻中心 >> 威盾新闻 >> 纠正网上 .htaccess 图片防盗链方法的错误

 

纠正网上 .htaccess 图片防盗链方法的错误

威盾防火墙 2015-01-14

 

也许并不是错误,只是服务器配置不同造成的个案,仅当做参考吧。

 

从网上看来的方法说在.htaccess文件中加入如下代码可以防止其他网站盗链图片:

 

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^[url]http://blog.51cto.com[/url]/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^[url]http://blog.51cto.com[/url]$ [NC]
RewriteCond %{HTTP_REFERER} !^[url]http://www.51cto.com[/url]/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^[url]http://www.51cto.com[/url]$ [NC]
RewriteRule .*\.(jpg|gif|png)$ /missing.jpg [R,NC]

 

对其方法稍微改进一下(由于博客三级域名的原因)。

RewriteCond %{HTTP_REFERER} !^http://(.)+\.51cto\.com [NC]
RewriteRule .*\.(jpg|gif|png|bmp)$ images/err.gif [R,NC]

 

试用后,发现图片并没有想想像中的转到指定图片,而是红叉。在新窗口中打开图片后发现图片也被认为是盗链,但是很长时间打不开。这时监看服务器负载情况,CPU占用变高,其中一个httpd进程占了大量系统资源。把新窗口关掉,服务器恢复正常。

 

分析了一下问题原因,RewriteRule .*\.(jpg|gif|png|bmp)$ images/err.gif [R,NC]这句,将所有的图片文件重定向到images/err.gif文件,可是images/err.gif仍然是错误的,他还会再次重定向,反复重定向造成一个死循环。。。后来修改RewriteRule .*\.(jpg|gif|png|bmp)$ images/err.gif [R,NC]中的[R,NC]为[L,NC]。服务器负载正常,盗链的页面上可以显示出错误提示图片,而非前面的红叉。


相关内容: 最新内容:
iis服务器防盗链ISAPI Rewrite设置[2015-01-13]
IIS 6.0使用ISAPI_Rewrite防盗链模块设置指南[2015-01-09]
分享下IIS6虚拟主机的防盗链和伪静态规则!<终极版>[2015-01-09]
IIS7.5配置防盗链[2015-01-09]
IIS服务器防盗链具体设置方法[2015-01-09]
关于IIS防盗链。。。。。[2015-01-09]
SQL注入攻击代价沉重 重视web应用攻击成要务[2015-01-13]
来自微软漏洞研究与防御BLOG的SQL注入防范[2015-01-13]
让SQL注入攻击危害最小化三大措施[2015-01-13]
SQL盲注攻击的简单介绍[2015-01-13]
SQL注入式攻击的防治的六个建议[2015-01-13]
保护数据安全的三种武器[2015-01-13]