什么是图片盗链

 
  • 每张图片在浏览器中都有对应的图片地址,在浏览器中输入这个地址是可以直接拿到图片。
  • 图片盗链,就是盗用者在他的站上需要显示我们的图片,他没有把图片拿下来,放到他的服务器上,
  • 而是直接就用我们的,图片地址,来请求到我们的服务器来拿图片,流量产生在我们这边。
 
referer

 
referer指令通过检测访问图片的来源,来做出一些控制。
 
图片访问的来源
  • 通过谷歌/百度访问
  • 通过浏览器直接访问
  • 本站点的访问
  • 来自非法的域名访问
 
referer
  • nginx 模块 ngx_http_referer_module 通常用于阻挡来源非法的域名请求.
  • 但我们应该牢记,伪装 Referer 头部是非常简单的事情,所以这个模块只能用于阻止大部分非法请求.
  • 我们应该记住,有些合法的请求是不会带 referer 来源头部的,所以有时候不要拒绝来源头部(referer)为空的请求
 
 
图片防盗链配置
location ~* \.(gif|jpg|png|bmp)$ {
     valid_referers none blocked *.ttlsa.com server_names ~\.google\. ~\.baidu\.;
     if ($invalid_referer) {
     return 403;
     #rewrite ^/ http://www.ttlsa.com/403.jpg;
     }
}
 
  • 以上所有来至 ttlsa.com 和域名中包含 google 和 baidu 的站点都可以访问到当前站点的图片,
  • 如果来源域名不在这个列表中,那么$invalid_referer 等于 1,在 if 语句中返回一个 403 给用户,
  • 这样用户便会看到一个 403 的页面,如果使用下面的 rewrite,那么盗链的图片都会显示 403.jpg。
  • 如果用户直接在浏览器输入你的图片地址,那么图片显示正常,因为它符合 none 这个规则.
 
参数说明
  • none

    • “Referer” 来源头部为空的情况
  • blocked
    • “Referer”来源头部不为空,但是里面的值被代理或者防火墙删除了,这些值都不以 http://或者 https://开头.
  • server_names
    • “Referer”来源头部包含当前的 server_names(当前域名)
  • regular expression
    • 正则表达式,~表示排除 https://或 http://开头的字符串

Nginx实现图片防盗链(referer指令)的更多相关文章

  1. nginx服务器图片防盗链的方法

    nginx服务器图片防盗链的方法<pre> location ~* \.(gif|jpg|png|jpeg)$ { expires 30d; valid_referers *.shuche ...

  2. 防盗链Nginx设置图片防盗链,设置无效的请仔细看红字

    *******************************************************************切记,替换的图片地址要使用没有防盗链的网站图片,否则由于替换的图片 ...

  3. nginx配置图片防盗链

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${ expires 30d; access_log off; valid_referers none blocked ...

  4. Nginx中防盗链(下载防盗链和图片防盗链)操作记录

    日常运维工作中,设置防盗链的需求会经常碰到,这也是优化网站的一个必要措施.今天在此介绍Nginx中设置下载防盗链和图片防盗链的操作~ 一.Nginx中下载防盗链的操作记录对于一些站点上的下载操作,有很 ...

  5. Nginx中防盗链(下载防盗链和图片防盗链)及图片访问地址操作记录

    日常运维工作中,设置防盗链的需求会经常碰到,这也是优化网站的一个必要措施.今天在此介绍Nginx中设置下载防盗链和图片防盗链的操作~ 一.Nginx中下载防盗链的操作记录对于一些站点上的下载操作,有很 ...

  6. Referer图片防盗链

    前几天讲了<nginx下载防盗链>,今天继续说下图片防盗链. 他们两个使用的指令不同,前者使用secure link,并且需要程序配合,但是效果非常好;后者不需要程序配合,根据图片来源来实 ...

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

    原文:http://www.wufangbo.com/nginx-fang-dao-lian/ 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的 ...

  8. Nginx修改配置实现图片防盗链

    一般情况下,防盗链是针对软件下载和图片的,由于一般的站点不提供资源下载,所以本文主要是针对图片的防盗链 1.如果对全站图片做防盗链,至少需要一个另外的域名存放指向图片.因为如果对全站图片做了防盗链,包 ...

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

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

随机推荐

  1. CCCC练习即感

    字符串进行初始化时不能通过char a[10]={'\0'}来简单进行,写循环或者memset,亲测有效,以及初始化分好情况,用空格还是'\0',别乱搞. 有一个有意思的题,连续因子,从2开始,依次向 ...

  2. 遍历文档内容,得到HTML层级结构

    嗯..没发现有写好的,那就自己写一个,刚好自己今天看了DOM操作的知识点,巩固一下. HTML可以表示为一个层次结构,生成的DOM Tree 就是类似与数据结构中的树一样,每个DOM节点都有它的chi ...

  3. How to learn wxPython

    目录 How to learn wxPython Learn Python Choose a good editor Install wxPython Read the wxPython tutori ...

  4. 函数:module_put ( )【转】

    转自:http://book.2cto.com/201307/27049.html 文件包含: #include <linux/module.h> 函数定义: 函数在内核源码中的位置:li ...

  5. eclipse断点调试时不能进入断点调试

    页面JavaScript代码有错误!!!F12调试.

  6. python中的with与上下文管理器

    #转载请留言联系 很多人平时需要打开文件进行读取写入操作时,通常这样: f = open('文件路径','w') f.write(data) f.close 这样写有一个潜在的问题,如果在调用 wri ...

  7. MySQL 的七种 join

    建表 在这里呢我们先来建立两张有外键关联的张表. CREATE DATABASE db0206; USE db0206; CREATE TABLE `db0206`.`tbl_dept`( `id` ...

  8. ros 如何使用 openni2_launch

    There is very little actual code/etc in openni2_launch, it is mostly a thin wrapper around openni2_c ...

  9. 【hdoj_2111】SavingHDU

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2111 题目理解:给出一个口袋的容量,若干种宝物的单价和体积,单个的宝物可以分割,待求的是最多能装价值多少的 ...

  10. 大话PHP设计模式

    设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 “四人帮”).所 ...