什么是防盗链?
有时候,当我们在网站上浏览图片时会遇到图片打不开,并看到提示:“403权限禁止”。这可能是正在浏览的这个网站用到的图片在盗用别的网站图片,而被盗用的网站采用了防盗链技术。

这个功能是很有用的,特别是对于图片站或视频站。
今天本文就聊聊如何实现防盗链。
以nginx为例,如何实现防盗链?

nginx referer指令
nginx有个模块模块:ngx_http_referer_module。
通常用于阻挡来源非法的域名请求。用nginx防盗链,就要用到它。脚本如下
server{ listen 80; server_name www.sharewaf.com; index index.html index.htm index.php; root /data/www; # 定义访问日志的路径和格式 access_log /tmp/nginx_access.log main; # 不记录静态文件的的访问日志 location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2)$ { access_log off; expires 10d; valid_referers none blocked *.http://bing.com *.http://baidu.com *.google.com; if ($invalid_referer) { rewrite ^/ http://www.baidu.com/; #return 403; } } }

  • location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2) 表示对gif、jpg、png、swf、flv后缀的文件实行防盗链
  • valid_referers none blocked 表示对来路进行判断 if{ }里面内容的意思是,如果来路不是指定来路域名,如果来路不是指定来路就跳转到指定页面,当然直接返回403也是可以的。

另外需要知道的是:伪装Referer头部是非常简单的事情,所以这个模块只能用于阻止部分简单的非法请求,如果要实现高强度的防盗链,还是得用专业的WAF(web应用防火墙),如:ShareWAF

另外要注意,有些合法的请求是不会带referer来源头部的,所以有时候不要拒绝来源头部(referer)为空的请求,否则会阻挡掉很多合法访问。
其它还可能能用于nginx防盗链的指令:

  • 语法: referer_hash_bucket_size size;
  • 默认值: referer_hash_bucket_size 64;
  • 配置段: server, location

最后,配置文件设置完成别忘记重启nginx生效。

unity如何实现图片透视_如何用nginx实现防盗链?保护网站图片、视频。相关推荐

  1. python如何让图片镜像翻转_如何用 Python 增量备份 Roam Research 笔记图片?

    消除后顾之忧,轻松输入卡片笔记. 题图:Photo by Markus Spiske on Unsplash 前些日子,我用视频的方式给你介绍了 Roam Research 这款工具.如果你还没有来得 ...

  2. python批量resize图片大小_如何用Python智能批量压缩图片?

    本文一步步为你介绍,如何用Python自动判断多张图片中哪些超出阈值需要压缩,且保持宽高比.如果你想了解Python图像处理的基础知识,欢迎动手来尝试. 痛点 我喜欢用Markdown写文稿,然后发布 ...

  3. 5图片展示_作为一名跨境卖家,产品图片不这样拍还怎么靠“脸”吃饭?

    众所周知,产品图片是吸引买家购买的关键因素之一.往往有的产品描述或卖点撰写再吸引人,都不及一张能触动消费者购物欲望的产品图片来得有效.如何优化产品图片,达到"一图胜千言"的效果是卖 ...

  4. 如何将网页保存为图片_如何用浏览器插件一键批量下载网页图片?

    如果你看到一个网页上的图片想要全部下载下来,你是如何下载的?一个一个下载太慢了,并且有的图片还有水印,没有水印的不让你下载,比如,阿里巴巴里的产品详情页.那么,有什么办法能一键下载网页上的图片呢?准备 ...

  5. gels imagej 图片处理_如何用ImageJ进行粒度分析

    ImageJ是由National Institutes of Health开发的一个基于Java的图像处理软件,它可以运行于Microsoft Windows, LinuX和Mac OS等多种平台.I ...

  6. gels imagej 图片处理_如何用ImageJ分析运动细胞?

    ImageJ(官网:https://imagej.nih.gov/ij/)是一个基于java的公共的图像处理软件,它是由National Institutes of Health(NIH)开发的一款功 ...

  7. unity地面添加材质球_为Unity3D创建素材(1):图片、着色器、材质球

    图片 Unity3D支持使用大部分位图格式作为图片素材,甚至包括带图层和图层效果的.psd格式文件. 但在实际使用中,并不推荐直接使用非通用的文件格式.这是因为对于任何格式的图片素材,Unity3D在 ...

  8. python如何使用图片做背景_如何用python裁剪白色背景上的图像?

    我正在扫描旧照片,所以我有图像和扫描仪的白色背景.我的目的是拍这张照片,去掉白色的背景.我怎么能做到呢?在 示例图片如下: 我的简单方法:import os import time from PIL ...

  9. python环绕文字_如何用css实现文字三面环绕图片?

    html部分: DIV with content or Image in the Middle of the text Lorem ipsum dolor sit amet, consectetur ...

最新文章

  1. 黑马lavarel教程---4、csrf验证及相关
  2. linux网络配置详细
  3. Synchronize和Lock 的区别与用法
  4. 如何成立一家私募基金公司
  5. postgres中分组后拼接多行
  6. Apache Tiles的使用 前配置
  7. HTML期末学生大作业-乒乓球网页作业html+css+javascript
  8. 【收藏】ASP.NET英文技术文章推荐[10/28 – 11/3]
  9. php 5.3.29 怎么开启debug_PHP代码审计之环境安装(一)
  10. nxlog以syslog方式发送日志
  11. C语言回调函数详解及实例
  12. npm run dev的实质
  13. mysql报错:1194-table “xxx“ is marked as crashed and should be repaired
  14. Windows7旗舰版SP1_32位2018.10(办公版)
  15. python半圆_复合半圆环图只要四句代码搞定
  16. 1.3寸OLED IIC驱动右方出现两列像素白边的解决方法
  17. OI 生涯回忆录 《Pilgrimage》
  18. 在线电子书阅读微信小程序 毕业设计(5)用户登录注册
  19. 【图像处理基础】RGB的解析
  20. Mybatis —— @Options注解实现执行参数配置

热门文章

  1. php7.2获取年份的格式,7.7.2 获取zval的值及类型
  2. VS(visual studio)如何查看预处理后的文件?(查看宏定义展开,头文件展开等)(注意如果要运行或调试代码,要把第一步的改回来!!!!)
  3. DVWA--SQL注入
  4. linux——管理系统设备之vsftpd服务
  5. ERROR: cannot launch node of type [pointcloud_to_laserscan/pointcloud_to_laserscan]
  6. Kobolds and Catacombs 思维,模拟,前缀,后缀(沈阳)
  7. 黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程(定位,显示与隐藏)
  8. Java多线程(二):Callable和FutureTask结合使用获取返回值
  9. linux管道原子性写入,write(2)/ read(2)linux中进程之间的原子性
  10. ffmpeg基本用法