8,nginx防盗链(13)

获取全套nginx教程,请访问瓦力博客

防盗链是一种机制,也可以说是一种技术,目的是防止自己网站的东西(如图片,文件etc。)被其他用户采用技术的手段来访问或者下载。简单的说就是防止自己站点资源被他人盗用

1,盗链

站点在页面呈现的时候拉取非本站的资源,称为盗链。准确的说,只有某些时候,这种跨站,才被称为盗链。加入b站点作为一个商业网站,有很多自主版权的图片,自身展示用于商业目的。而A站点,希望自己的网站上面也展示这些图片,直接使用:

<img src="http://b.com/photo.png">

这样大批的客户端访问A站点的时候,实际消耗了B站点的流量,而A站点却从中达成商业目的。从而不劳而获。这样的站点着实令B站点不快。

2,nginx配置防盗链

当浏览器向web服务器发送请求的时候,一般会在头信息中带上Referer字段,告诉服务器我是从那个页面链接接过来的,服务器基此可以获得一些信息用于处理,基于头信息referer字段,Nginx识别指定的Referer,在客户端请求时,通过匹配referer头域与配置,对于指定放行,对于其他的视为盗链。

1,valid_referers
valid_referers配置项是属于ngx_http_referer_module模块传送门{:target="_blank"}
···
Syntax: valid_referers none |blocked|server_names |string...;
Defalut: -
Context: server,location
···
参数
说明

none
请求标头中缺少"Referer"字段,也就是空Referer

blocked
"Referer"字段出现在请求标头中,但其值已被防火墙或代理服务器删除;这些值是不以"http://"或"https://"开头的字符串

server_names
允许某个域名通过如walidrea.com

arbitrary string
定义服务器名称和可选的URI前缀。服务器名称的开头或结尾可以包含“*”。在检查期间,“Referer”字段中的服务器端口被忽略

regular expression
第一个符号应为“~”。应该注意的是,表达式将与“http://”或“https://”之后的文本匹配

实例配置:

location ~.*\.(jpg|gif|png)${
  root /opt/app/code/images;
gzip on;
gzip_http_version 1.1;
gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

valid_referers none blocked 116.62.113.218  walidream.com
if($invalid_referer){
return 403;
}

}



允许访问服务器图片

![9150023-160a8d14e6800c17.png](https://upload-images.jianshu.io/upload_images/12197462-dbce14c68a5b7581.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

不允许访问服务器图片

1.png

因为HTTPReferer头信息是可以通过程序来伪装生成的,所以通过Referer信息防盗链并非100%可靠,但是,它能够限制大部分的盗链


bec62f35gy1fhfzv6s495j20m80vyn1f.jpg
最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,172评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,346评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,788评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,299评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,409评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,467评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,476评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,262评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,699评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,994评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,167评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,827评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,499评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,149评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,387评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,028评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,055评论 2 352

推荐阅读更多精彩内容

  • 《老男孩Linux运维》笔记 隐藏Nginx软件版本号 一般来说,软件的漏洞都和版本有关。因此要尽量隐藏对访问用户...
    Zhang21阅读 3,635评论 0 28
  • ngx_http_rewrite_module是Nginx服务器的重要模块之一,它一方面实现了URL的重写功能,另...
    吃瓜的东阅读 1,177评论 0 1
  • 1.ngnix介绍 ngnix www服务软件 俄罗斯人开发 开源 性能很高 本身是一款静态WWW软件 静态小文件...
    逗比punk阅读 2,088评论 1 6
  • nginx 常用命令 如果将整个配置文件的结构简化一下,大概就是这样: nginx 限制ip访问 也可以通过文件的...
    github加星点进来阅读 1,079评论 0 13
  • 假如那份爱里你许下来了太多的承诺,描绘了太多遥远的未来,你将你以为的爱疯狂的给她。你告诉她未来是怎样的,我要怎么去...
    伪文君阅读 835评论 0 0