nginx安全:配置网站图片防盗链

一,为什么要做防盗链?

1,什么是盗链?

    比如某人有一个A网站,

    他不愿自己存储图片,(因为磁盘和带宽都有成本)

    就在自己A网站的页面上直接插入B网站的图片,

    从而为自己吸引流量,这就是盗链

 

2,为什么需要防盗链?

盗链静态文件会浪费网站的带宽及服务器的计算能力

这些都是网站运行的成本,

而且会影响网站合法用户的正常访问体验

所以我们要禁止盗链网站的图片和视频等静态文件

 

3,防盗链的原理:

    根据请求头中referer属性得到网页来源,从而实现访问控制。

    禁止非法使用本站的图片。

 

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

 

二,防盗链的例子

1,盗链的效果

假设盗链的网站是:www.lhdtest.com,被盗链的图片来自file.laoliu.net

它的index.html页面内容:

<html> <head> <title> invalid images </title> </head> <body> welcome to www.lhdtest.com<br/> <img src="http://file.laoliu.net/image/mid/1/348_8d72a999aa1d5800.gif" style="width:260px;" /> </body> </html>

效果图:

nginx安全:配置网站图片防盗链

 

2,防盗链的配置

我们在file.laoliu.net的虚拟主机上添加配置:

 location ~ .(gif|jpg|jpeg|png|bmp|ico)$ { valid_referers none blocked *.laoliu.net; if ($invalid_referer){ return 403; } expires 30d; }

 

各项指令的说明:

valid_referers: 用来定义合法访问的一个白名单

none:            通过浏览器直接打开图片的url,这种情况没有referer,

                    通常我们允许这种访问

blocked:        referer不为空,但它的内容被防火墙或者代理服务器删除掉了

                   这种访问也可以允许

*.laoliu.net:   这个是被允许的域名,可以使用通配符

$invalid_referer:    是一个变量,用来判断valid_referers的结果是否非法

return 403:          返回403,403是HTTP 403 Forbidden的状态码,表示禁止访问

 

重启nginx生效后我们查看效果

nginx安全:配置网站图片防盗链

说明:*.laoliu.net 这个域下面的页面仍然可以正常访问这些图片,

在浏览器地址栏直接输入地址也可以访问

 

3,遇到盗链时也可以跳转到一个提示当前被盗链的图片

例:

 location ~ .(gif|jpg|jpeg|png|bmp|ico)$ { valid_referers none blocked *.laoliu.net; if ($invalid_referer){ rewrite ^/ http://img4.sycdn.imooc.com/5eaa360d00017ef904930247.jpg;  } expires 30d; }

查看效果:

 nginx安全:配置网站图片防盗链

 

三,仅判断referer并不可靠

因为referer是可以伪造的,所以这里的防盗链还不是百分百的安全,

更严格的需求可以用nginx的第三方模块http_accesskey_module模块或lua脚本实现

 

四,查看nginx的版本

[root@centos8 conf.d]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v nginx version: nginx/1.18.0

 

原文链接:https://www.cnblogs.com/architectforest/p/12859539.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18433

(0)
上一篇 2023年11月30日
下一篇 2023年11月30日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml