nginx利用referer指令实现防盗链配置
发布时间 - 2026-01-10 23:24:38 点击率:次实现图片防盗链:
location ~* \.(gif|jpg|png|webp)$ {
valid_referers none blocked domain.com *.domain.com server_names ~\.google\. ~\.baidu\.;
if ($invalid_referer) {
return 403;
#rewrite ^/ http://www.domain.com/403.jpg;
}
root /opt/www/image;
}
以上所有来至domain.com和域名以及baidu和google的站点都可以访问到当前站点的图片,如果来源域名不在这个列表中,那么$invalid_referer等于1,在if语句中返回一个403给用户,这样用户便会看到一个403的页面,如果使用下面的rewrite,那么盗链的图片都会显示403.jpg。none规则实现了允许空referer访问,即当直接在浏览器打开图片,referer为空时,图片仍能正常显示.
[root@loya ~]# curl -I http://qingkang.me/1.jpg -H 'Referer:http://www.baidu.com' HTTP/1.1 200 OK Server: nginx/1.8.1 Date: Fri, 16 Dec 2016 14:56:51 GMT Content-Type: image/jpeg Content-Length: 17746 Last-Modified: Tue, 16 Aug 2016 03:20:21 GMT Connection: keep-alive ETag: "57b28675-4552" Accept-Ranges: bytes [root@loya ~]# curl -I http://qingkang.me/1.jpg -H 'Referer:http://www.qq.com' HTTP/1.1 403 Forbidden Server: nginx/1.8.1 Date: Fri, 16 Dec 2016 14:56:58 GMT Content-Type: text/html; charset=utf-8 Content-Length: 168 Connection: keep-alive
指令
语法: valid_referers none | blocked | server_names | string …;
配置段: server, location
指定合法的来源'referer', 他决定了内置变量$invalid_referer的值,如果referer头部包含在这个合法网址里面,这个变量被设置为0,否则设置为1. 需要注意的是:这里并不区分大小写的.
参数说明:
- none “Referer” 为空
- blocked “Referer”不为空,但是里面的值被代理或者防火墙删除了,这些值都不以http://或者https://开头,而是“Referer: XXXXXXX”这种形式
- server_names “Referer”来源头部包含当前的server_names(当前域名)
- arbitrary string 任意字符串,定义服务器名或者可选的URI前缀.主机名可以使用*开头或者结尾,在检测来源头部这个过程中,来源域名中的主机端口将会被忽略掉
- regular expression 正则表达式,~表示排除https://或http://开头的字符串.
注意
通过Referer实现防盗链比较基础,仅可以简单实现方式资源被盗用。构造Referer的请求很容易实现。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
# nginx防盗链配置
# nginx
# referer
# 配置
# referer防盗链
# Nginx防盗链的3种方法
# Nginx防盗链的配置方法
# Nginx服务器下防盗链的方法介绍
# Nginx图片防盗链配置实例
# 配置Nginx的防盗链的操作方法
# Nginx配置防盗链的完整步骤
# nginx 防盗链防爬虫配置详解
# NGINX中浏览器的盗链与防止被盗的实现
# 为空
# 设置为
# 的是
# 防盗链
# 在这个
# 将会
# 很容易
# 可以使用
# 可选
# 便会
# 这篇文章
# 盗链
# 不以
# 需要注意
# 仍能
# 过程中
# 正常显示
# 来至
# 实现了
# 决定了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
HTML 中动态设置元素 name 属性的正确语法详解
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
怎么用AI帮你为初创公司进行市场定位分析?
怎么用AI帮你设计一套个性化的手机App图标?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Laravel如何与Pusher实现实时通信?(WebSocket示例)
Laravel如何使用withoutEvents方法临时禁用模型事件
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
,怎么在广州志愿者网站注册?
php json中文编码为null的解决办法
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
详解Huffman编码算法之Java实现
Linux网络带宽限制_tc配置实践解析【教程】
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
node.js报错:Cannot find module 'ejs'的解决办法
如何挑选高效建站主机与优质域名?
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
Laravel如何处理文件下载请求?(Response示例)
Android自定义控件实现温度旋转按钮效果
深圳网站制作平台,深圳市做网站好的公司有哪些?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
如何在IIS中新建站点并配置端口与IP地址?
如何在阿里云完成域名注册与建站?
重庆市网站制作公司,重庆招聘网站哪个好?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
JS碰撞运动实现方法详解
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何在 Pandas 中基于一列条件计算另一列的分组均值
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
网页设计与网站制作内容,怎样注册网站?
Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
Laravel PHP版本要求一览_Laravel各版本环境要求对照
Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集
Laravel如何实现模型的全局作用域?(Global Scope示例)
Laravel如何实现事件和监听器?(Event & Listener实战)
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比
zabbix利用python脚本发送报警邮件的方法
浅述节点的创建及常见功能的实现

