nginx--防盗链

盗链

通过在自己网站里面'引用别人的资源链接','盗用'人家的劳动和资源

referer

referer是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息

正常的referer信息

none:请求报文首部没有referer首部,比如用户直接在浏览器输入域名访问web网站,就没有referer信息。

blocked:请求报文有referer⾸首部,但无有效值,比如为空。

server_names:referer首部中包含本主机名及即nginx 监听的server_name。

arbitrary_string:自定义指定字符串,但可使用*作通配符。

regular expression:被指定的正则表达式模式匹配到的字符串,要使用~开头,例如:

~.*\.magedu\.com。

实现web盗链

配置nginx.conf文件

复制代码
    log_format access_json '{"@timestamp":"$time_iso8601",'
        '"host":"$server_addr",'
        '"clientip":"$remote_addr",'
        '"size":$body_bytes_sent,'
        '"responsetime":$request_time,'
        '"upstreamtime":"$upstream_response_time",'
        '"upstreamhost":"$upstream_addr",'
        '"http_host":"$host",'
        '"uri":"$uri",'
        '"domain":"$host",'
        '"xff":"$http_x_forwarded_for",'
        '"referer":"$http_referer",'
        '"tcp_xff":"$proxy_protocol_addr",'
        '"http_user_agent":"$http_user_agent",'
        '"status":"$status"}';
    access_log  logs/access.log  access_json;

    server {
        listen       80;
        server_name  www.xfxq.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /data/nginx/html;
            index  index.html index.htm;
        }

配置index.html文件

复制代码
<html>
<body>
<meta charset="utf-8">
<a href="http://www.fxq.com">盗链</a>
<img src="http://www.fxq.com/1.jpg">
</body>
</html>
</html>

查看图片

查看日志

实现防盗链

http:// https://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers

格式

复制代码
valid_referers none blocked server_names
               *.example.com example.* www.example.org/galleries/ 
               ~\.google\.; 定义有效的referer

if ($invalid_referer) {  如是使用其他的无效的referer访问:
    return 403;  返回状态码403
}  

定义防盗链

复制代码
server {
  listen 80;
  listen       443 ssl;
  ssl_certificate  /apps/nginx/certs/www.fxq.com.crt;
  ssl_certificate_key /apps/nginx/certs/www.fxq.com.key;
  ssl_session_cache shared:sslcache:20m;
  ssl_session_timeout 10m;
  server_name www.fxq.com;
  location / {
     root /data/nginx/html/pc;
     index index.html;
    }
  location = /favicon.ico {
     root /data/nginx/html/pc;
  }
  location = /1.jpg{
     root /data/nginx/static; 
     valid_referers none blocked server_names
                  ~\.google\.; 
     if ($invalid_referer) {  
             return 403;
       }  
    }
  }    
[ro

访问结果

相关推荐
福建佰胜张工2 小时前
SMC 薄型气爪 MHF2-16D1 深度解析:平行开闭、低剖面结构在自动化装配中的选型与落地
java·服务器·安全·自动化
xuefeiniao3 小时前
PHP2Shell漏洞修复
运维·服务器·php
便利店10244 小时前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
g3voip5 小时前
工业防水电话到底怎么选?隧道、管廊与码头的需求差异
服务器·网络·信息与通信·ip
珠海西格电力5 小时前
零碳园区管理系统的性能评估体系的行业标准
大数据·网络·人工智能·物联网·机器学习·架构·能源
.Bryce.6 小时前
从强化学习到Agentic RL:让Agent在“干活“中自己变聪明
服务器·网络·agent·rag·agentic rl
ZYH_06016 小时前
rhcsa课程复习题
服务器·bash
用户565190394496 小时前
高危 编号99999漏洞情报(26年8-10月) 多个严重漏洞:PHP执行远程控制代码 / Linux虚拟机-宿主越界(CVE-2026-99999...
服务器
云飞云共享云桌面6 小时前
广东东莞制造工厂10人共享一台三维设计服务器
运维·服务器·3d·自动化·制造
NetInside_6 小时前
Unknown,不应该是网络分析的终点
网络