配置Nginx实现简单的反盗链

盗链是指一个网站的资源(图片资源、视频资源、文件等)未经许被其它网站提供浏览和下载。

盗链行为会对服务器资源以及带宽消耗非常大,但实际网站的访问量却并没有得到提升。所以网站必须要有有效的防盗链措施。

本文通过Nginx的配置指令valid_referers来实现简单的图片和其它类型文件的防盗链。

nginx 配置内容如下:

location ~ .(jpg|png|gif)$ {
     valid_referers none blocked mysite.com *.mysite.com;
     if ($invalid_referer) {
         return   403;
     }
}

用 “ | ” 来分隔你想保护的文件的扩展名。

valid_referers指令允许你定义一个网站列表,当不在列表中的网站访问时,返回403错误。

none参数表示匹配没有Referer的HTTP请求。

blocked参数表示请求有Referer,但是被防火墙或者代理服务器修改,去掉了https://或http://。

后面跟网站列表,支持顶级域名和二级域名以及通配符。

除了使用location对文件访问进行限制,也可以对指定目录进行限制。

下面的配置会对images目录下所有文件进行防盗链处理:

location /images/ {
     valid_referers none blocked mysite.com *.mysite.com;
     if ($invalid_referer) {
         return   403;
     }
}

这些配置都是简单的防盗链方法。可有效地屏蔽一些直接引用网站链接的盗链方式;如果盗链网站伪造了HTTP请求,这种方法不能有效地屏蔽。

反盗链的一些其它措施

比较原始的方法是定期更换目录名或者文件名。这种方法可使用脚本程序来自动化处理。比较高级的方法是进行Cookie或者Session加密验证,添加验证码等。

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/1152.html

分类: 计算机技术
推荐阅读:
Python使用蒙特卡洛法计算圆周率 蒙特卡洛方法通过在单位正方形内随机生成点,并判断这些点是否在单位圆内的比例来估算圆周率。当随机点数量越多时,估算值越趋近于真实值。
C语言isprint()函数:判断字符是否可打印 isprint()是C语言标准库中的一个函数,用于检查一个字符是否为可打印字符;该函数与isgraph()函数有点相似,isgraph()函数也用于检查一个字符是否为可打印字符(但不包括空格字符),而isprint()函数则包含空格字符;
C语言函数大全 C语言标准库是C语言中非常重要的一部分,它包含了许多内置函数,可以为C程序员提供非常有用的功能和工具。标准库函数可以分为几个类别,包括输入输出函数、字符串处理函数、数学函数、时间函数、内存管理函数、文件操作函数等。
PySide6隐藏和显示窗口(QWidget) PySide6.QtWidgets.QWidget类的成员函数hide()可用于隐藏窗口,show()可用于显示窗口;
打开任务管理的一瞬间CPU飙到很高,这种现象正常吗? Windows系统上的任务管理器(进程名Taskmgr.exe)用于实时显示计算机当前有关于性能、进程、服务等信息;细心的朋友会发现,在打开任务管理器的一瞬间,CPU使用率瞬间飙升,基本上会达到100%,随后也会很快回落,那这种现象正常么?
Golang实现获取文件或文件夹的详细信息 golang可通过使用os.Stat()来获取文件或文件夹的详细信息。