配置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

分类: 计算机技术
推荐阅读:
PySide6 beep()函数详细教程 PySide6.QtWidgets.QApplication类的成员函数beep()将使用系统设置的音量和声音进行通知;
Rust语言逐行读取文本文件 这是一个使用Rust语言逐行读取文本文件的例子;
Kali更新源的方法和优质国内源 所谓的Kali源,你可以将它理解为软件仓库,系统通过它安装和更新软件;源的服务器地址写在/etc/apt/sources.list文件中;当系统使用的当前源不可用或速度不理想时,就需要更换源;
一定有你不知道的Python技巧 Python一直以代码简洁著称;想写出艺术般的代码,需要你掌握各种Python技巧,这些技巧有些是语言特性,有些则是广大程序员的经验心得;今天作者就给大家网罗了一些Python技巧,一起来看看吧。
check_hostname requires server_hostname 错误解决方法 通常造成check_hostname requires server_hostname错误都与Python有关;本文将详细的描述造成这类错误的原因和多种解决方法;
查看Nginx版本信息和编译配置参数 使用命令nginx -v 获取Nginx版本信息;使用命令nginx -V 获取Nginx编译信息;