Nginx作为web静态资源服务器——防盗链
2024-09-05 00:33:52
基于http_refer防盗链配置模块
Syntax:valid_referers none | blocked | server_names | string ...;
Default:——
Context:server,location
HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。比如从我主页上链接到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。
设置防盗链的作用是为了防止,视频、图片...防止被其他网站盗用
配置语句
location ~ .*\.(jpg|gif|png)$ {
gzip on;
gzip_http_version 1.1;
gzip_comp_level 4;
gzip_types text/plain application/javascript applicattion/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
valid_referers none blocked 192.168.96.135; # 允许跳转的ip
if ($invalid_referer) {
return 403;
}
root /opt/app/code/images;
}
one代表没有referer;blocded代表有referer但是被防火墙或者是代理给去除了。
首先当我输入我要打开的网址的时候,因为是直接输入的没有referer所以匹配了
valid_referers后面的none或者是blocked 所以invalid_referer值为0 所以不进行跳转.
当我是从这个网站里面的链接跳到该网站首页的时候 因为referer的值是肯定包含srever_names 所以匹配了server_names所以不进行跳转。
当我从搜素引擎进去的时候因为referer字段类似于www.google.com.hk/search
开始进行匹配 发现没有一个匹配,则此时会设置invalid_referer值为1 if语句成功执行,进行了跳转. 达到功能
测试
使用curl 命令
curl -e "http://192.168.96.188" -I http://192.168.96.188/test.png,报403错误
curl -e "http://192.168.96.135" -I http://192.168.96.188/test.png,可正常访问
最新文章
- Android万能使用WebServices(不用引入外部包)
- BMP图像数据格式详解
- Code First03---CodeFirst根据配置同步到数据库的三种方式
- Think Python - Chapter 15 - Classes and objects
- php中const与define的使用区别 详解
- java程序员菜鸟进阶(十五)linux基础入门(三)linux用户和组管理
- python判断一个数字是整数还是浮点数
- MongoDB ‘conn’Mongo 对象远程代码执行漏洞
- 设计模式14---设计模式之命令模式(Command)(行为型)
- English - little,a little,a few,few的区别
- $(window).height() 文档高度问题
- 解决mysql 1032 主从错误
- bzoj2120: 数颜色 [莫队][分块]
- C setjmp和longjmp
- Java泛型范例
- ORA-00923: FROM keyword not found where expected(单双引号)
- 21Oracle数据库和实例
- 最全的SpringCloud视频教程
- CVPR 2019 | 用异构卷积训练深度CNN:提升效率而不损准确度
- python常用模块之string