要实现防盗链,我们就必须先理解盗链的实现原理,提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。
Nginx防盗链的配置
1、nginx针对文件类型的防盗链配置方法:
location ~* \.(gif|jpg|png|swf|flv|bmp)$ { valid_referers none blocked *.chinaz.com chinaz.com; if ($invalid_referer) { #rewrite ^/ http://www.chinaz.com/403.html; return 403; } }
这种方法是在server或者location段中加入:valid_referers none blocked,其中none表示空的来路,也就是直接访问,比如直接在浏览器打开一个文件,blocked表示被防火墙标记过的来路,*.chinaz.com表示所有子域名。
2、nginx针对文件目录的防盗链配置方法:
location /img/ { root /data/img/; valid_referers none blocked *.chinaz.com chinaz.com; if ($invalid_referer) { rewrite ^/ http://www.chinaz.com/error.gif; #return 403; } }
Apache防盗链的配置
Apache 防盗链的第一种实现方法,可以用 Rewrite 实现。首先要确认 Apache 的 rewrite module 可用:能够控制 Apache httpd.conf 文件的,打开 httpd.conf,确保有这么一行配置:
LoadModule rewrite_module modules/mod_rewrite.so
然后在相应虚拟主机配置的地方,加入下列代码:
ServerName www.chinaz.com # 防盗链配置 参数 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://chinaz.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://chinaz.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.chinaz.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.chinaz.com$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.chinaz.com/img/nolink.gif [R,NC]
chinaz.com/www.chinaz.com 表示自己的信任站点。gif|jpg|swf 表示要保护文件的扩展名(以|分开)。nolink.gif 盗链后的重定向页面/图片。用以输出警示信息,这张图片应该尽可能的小。
有些用户使用的是虚拟主机,没有服务器的控制权,无法修改 httpd.conf 文件和重启服务器。那么请确认你的虚拟主机支持 .htaccess,将上面的配置写入 .htaccess 文件,放入根目录或图片所在的目录即可:
# 防盗链配置 RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://chinaz.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://chinaz.com$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.chinaz.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http://www.chinaz.com$ [NC] RewriteRule .*\.(gif|jpg|swf)$ http://www.chinaz.com/img/nolink.gif [R,NC]
通过判断referer变量的值,判断图片或资源的引用是否合法,只有在设定范围内的 referer,才能访问指定的资源,从而实现了防盗链(Anti-Leech)的目的。需要指出的是:不是所有的用户代理(浏览器)都会设置 referer 变量,而且有的还可以手工修改 referer,也就是说,referer 是可以被伪造的。本文所讲的,只是一种简单的防护手段。当然,应付一般的盗链也足够了。
相关推荐
### Nginx防盗链配置 #### 1. 针对文件类型的防盗链配置 在Nginx配置文件中,通常在`http`, `server`或`location`段中添加以下规则,以限制对特定文件类型的访问: ```nginx location ~* \.(gif|jpg|png|swf|flv|...
下面将详细介绍如何在Nginx中配置防盗链。 **一、防盗链的基本原理** 防盗链主要是通过检查HTTP请求头中的`Referer`字段来实现的。`Referer`字段包含了用户点击链接前的页面URL,当用户从一个网站跳转到另一个网站...
导读:nginx rewrite重写规则与防盗链配置方法,rewrite规则格式中flag标记的几种形式,盗链时返回403错误,允许的域名直接跟在第二行的域名后面。 nginx rewrite重写规则与防盗链配置方法如下所示: nginx rewite...
兼容性重构意味着该工具现在能更好地适应各种服务器环境和Web应用框架,无论是Apache、Nginx还是IIS,都能顺畅运行。稳定性压力测试则确保了在高并发访问情况下,软件依然能够稳定工作,避免因服务器负载过大导致的...
这可以通过 Nginx 的配置文件实现,例如通过 URL 规则进行重写,使用 access 和 error log 记录,以及设置限速和防盗链规则。 【总结】 通过替换 Apache 为 Nginx,红动中国论坛成功地提升了其 Web 环境的性能,...
为防止这种现象,我们可以利用Linux服务器上的Apache Web服务器进行防盗链和访问控制的设置。以下是一个详细的步骤和解释。 1. **理解Referer概念** Referer是HTTP头部的一个字段,它记录了用户是从哪个URL点击...
#### 八、Nginx防盗链 **8.1 Nginx防盗链** 防盗链是指防止非授权网站直接引用自己网站的内容,如图片、视频等资源。Nginx提供了多种方法来实现防盗链,包括检查HTTP Referer头部信息等。 #### 九、Nginx expires ...
在实际应用中,Nginx可以用来管理多站点配置,支持日志分析、日志切割、防盗链配置等运维工作。Nginx还支持均衡LAMP服务器架构,使其能够处理更高负载的Web请求。 在日常运维中,解决Nginx的故障也是一个重要的知识...
访问控制方面,Nginx提供了身份验证、禁止访问某些类型的文件、限制IP访问、下载限制并发和速率、大文件上传限制以及实现类似Apache目录列表功能等多种方法。同时,Nginx还支持http_accesskey_module模块,用于增强...
此外,Nginx还支持目录自动加上斜线、防盗链功能,以及设置静态资源的过期时间Expires等。 访问控制是Nginx的一项重要功能,包括通过身份验证来限制访问,禁止访问特定类型的文件,使用ngx_http_access_module模块...
Nginx 防盗链配置案例配置 防盗链是指防止他人非法盗用站点资源的技术手段。 - **配置示例**: ```nginx location ~ \.(jpg|jpeg|gif|png|css|js)$ { valid_referers none blocked server_names; if ($...
- **`return` 命令**:可以用来返回 HTTP 状态码,常用于防盗链等安全配置。 ```nginx location ~* \.(gif|jpg|png|swf|flv)$ { valid_referers none blocked ...
8. 日志管理和访问控制:设置日志记录格式,进行访问限制和防盗链策略。 9. FastCGI与PHP集成:结合FastCGI处理PHP请求,搭建PHP环境。 10. WebSocket支持:了解如何配置Nginx以支持WebSocket协议,用于实时通信应用...
安装完成后,可以使用命令行工具启动Nginx,有普通启动和通过配置文件启动两种方式,确保无误后,可以检查Nginx是否已经成功运行。停止Nginx时,推荐使用“优雅关闭”以确保正在进行的请求得以完成,避免数据丢失,...
#### 八、Nginx防盗链 - 通过设置`valid_referers`指令来防止其他站点盗用资源。 - 可以指定只允许来自特定域名的请求。 #### 九、Nginx expires **1. 根据文件类型expires** - 可以根据不同的文件类型设置不同...
##### 5.2 防盗链 - 配置 HTTP 请求头部检查。 ```nginx location ~* \.(jpg|jpeg|gif|png|css|js)$ { valid_referers none blocked $http_referer; if ($invalid_referer) { return 403; } } ``` ##### ...
- **防盗链配置**:提供了如何防止恶意网站盗用服务器资源的方法,保护了服务器安全。 #### 总结 综上所述,Nginx中文官方文档不仅详细介绍了Nginx的各项功能和技术细节,还提供了丰富的配置示例和最佳实践建议。...
动静分离是指将静态资源和动态资源分别处理的一种技术方案。Nginx由于其优秀的静态文件处理能力和反向代理功能,非常适合用于实现动静分离。 **动静分离架构设计:** 1. **Nginx作为前端服务器:** 负责处理静态...
1. 可以使用Nginx前端进行诸多复杂的配置,这些配置从前在Squid是没法做或者做起来比较麻烦的,比如针对目录的防盗链。 2. Nginx前端可以直接转发部分不需要缓存的请求。 3. 因为Nginx效率高于Squid,所以某些情况下...