文档章节

nginx如何实现图片防盗链

mickelfeng
 mickelfeng
发布于 2013/01/25 19:08
字数 504
阅读 434
收藏 8

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

Nginx常用的防盗链主要有以下二种方法,直接写到nginx的配置文件里就可以了。
一,针对图片目录实行防盗链(修改相关域名)
location /images/ {
alias /data/images/;
valid_referers none blocked *.dujiaoniu.com;
if ($invalid_referer) {
rewrite ^/  http://<font color="#ff0000">www.57cto.com</font>/daolian.gif;
#return 403;
}
}

二,针对后缀实行防盗链(修改相关域名)
location ~* \.(gif|jpg|jpeg|png|bmp|txt|zip|jar|swf)$ {
valid_referers none blocked *.dujiaoniu.com;
if ($invalid_referer) {
rewrite ^/  http://<font color="#ff0000">www.57cto.com</font>/daolian.gif;
#return 403;
}
}

需要注意的是,这二段防盗链的配置要放在正确的server里,也就是要放在图片url所在的server_name里。其次
rewrite也要写正确,否则可能造成重复rewrite,可以用firefox的插件Firebug来查看。如果不想重写到某个url,
可以直接返回403。

另外,还可以使用第三方模块ngx_http_accesskey_module实现Nginx防盗链,这里不作介绍,可以百度一下。

附上有关Referer的解释:

当一个请求头的Referer字段中包含一些非正确的字段,这个模块可以禁止这个请求访问站点。
这个头可以随意的伪造,因此,使用这个模块并不能100%的阻止这些请求,绝大多数拒绝的请求来自一些典型的浏览器,
可以认为这些典型的浏览器并不能提供一个”Referer”头,甚至是那些正确的请求。

指令:valid_referers

语法:valid_referers [none|blocked|server_names] …
默认值:none
使用字段:server, location
这个指令在referer头的基础上为 $invalid_referer 变量赋值,其值为0或1。
可以使用这个指令来实现防盗链功能,如果valid_referers列表中没有Referer头的值, $invalid_referer将被设置为1(

参照前例)。
参数可以使如下形式:

none意为不存在的Referer头
blocked意为根据防火墙伪装Referer头,如:“Referer: XXXXXXX”。
server_names为一个或多个服务器的列表,0.5.33版本以后可以在名称中使用“*”通配符。

本文转载自网络

mickelfeng

mickelfeng

粉丝 238
博文 2811
码字总数 607897
作品 0
成都
高级程序员
私信 提问
加载中

评论(0)

nginx系统真正有效的图片防盗链完整设置详解

关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! 一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显...

gutaotao1989
2017/08/25
0
0
lnmp/nginx系统真正有效的图片防盗链完整设置详解

http://www.it300.com/article-15345.html 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! 一般,我们做好防盗链之后...

osc_96pr9g1m
2019/01/31
1
0
使用NGINX+LUA实现WAF功能 和nginx 防盗链

使用NGINX+LUA实现WAF功能 一、了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用...

osc_rq37fdad
2019/08/28
2
0
Nginx1.16对图片进行防盗链

这里需要使用两台Linux主机(一台充当防盗链服务器,一台充当盗链服务器),下表是它们所使用的操作系统以及IP地址。 两台Linux主机所使用的操作系统以及IP地址 主机名称 操作系统 IP地址 防...

osc_1ont5xz2
2019/11/26
4
0
企业级Web Nginx 服务优化(5)

企业级Web Nginx 服务优化(5) 资源防盗链的技术: 1.1.1什么是资源盗链? 简单的说啊,就是某些不法的网站,通过在其自身网站程序里未经许可非法调用其他网站的资源,然后在自己的网站上显示...

余二五
2017/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于Centos7系统一键部署EFK服务

最近平台EFK版本均作了升级,平台采用EFK(ElasticSearch-7.6.2 + FileBeat-7.6.2 + Kibana-7.6.2)架构。这里建议三个组件主次版本保持一致。考虑到服务器比较多,所以写成脚本来批量部署。 ...

linuxprobe2020
19分钟前
19
0
检查键是否存在于JavaScript对象中? - Checking if a key exists in a JavaScript object?

问题: How do I check if a particular key exists in a JavaScript object or array? 如何检查JavaScript对象或数组中是否存在特定键? If a key doesn't exist, and I try to access it, ......

fyin1314
44分钟前
21
0
jasypt-spring-boot提示Failed to bind properties

1 问题描述 在Spring Boot中使用jasypt-spring-boot进行加密,但是提示: Description:Failed to bind properties under 'spring.datasource.password' to java.lang.String: Reason:......

氷泠
今天
29
0
在git 2.13之前,只保存多个已更改的文件中的一个文件

问题: 如何在我的分支上只隐藏多个已更改文件中的一个? 解决方案: 参考一: https://stackoom.com/question/Cl3h/在git-之前-只保存多个已更改的文件中的一个文件 参考二: https://oldb...

技术盛宴
今天
30
0
SQL笔记:把Excel的数据导入MySQL中作运算

很多Excel用户都知道,Excel单个工作簿单张表存储的数据量很有限(旧版本月60多万条记录,新版本也才104万条不到),而且Excel中,因为自带各种格式与公式,兼之高度封装性等原因,导致Excel...

tengyulong
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部