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

分类: 计算机技术
推荐阅读:
Rust实现字符串sha1、sha256、sha512加密 本文将在Rust语言中使用sha1、sha256、sha512等安全散列算法对字符串进行加密;
配置Nginx实现屏蔽爬虫IP 防止爬虫采集绝对是一个站长需要做的事;且不说站内资源被爬走,单是爬虫采集时消耗的服务器资源可能就够很多站长心疼了。
C语言中 i++ 和 ++i 的区别 在C语言中,++ 运算符也叫递增运算符,只需要一个操作数,属于一元运算符;本文将讨论前缀++运算符和后缀++运算符的区别,以及符号优先级的问题;
Python Qt库PySide和PyQt哪个好? Qt是一个跨平台的GUI程序开发框架;使用Qt可以轻松的开发出GUI程序;而想在Python中创建Qt应用,则需一套用于调用Qt API的库;这里主要介绍两个比较成熟的python Qt库,PyQt和PySide;
Python oct()函数 oct() 是 Python 的内置函数之一,用于将整数转换为八进制字符串。
SQL重命名数据库 当您需要更改数据库名称时,将使用RENAME DATABASE;