织梦医院网站源码数码网站建设图片
- 作者: 五速梦信息网
- 时间: 2026年04月20日 03:45
当前位置: 首页 > news >正文
织梦医院网站源码,数码网站建设图片,杭州建模培训,免费域名申请与解析nginx防盗链问题 盗链#xff1a; 就是a网站有一张照片#xff0c;b网站引用了a网站的照片 。 防盗链#xff1a; a网站通过设置禁止b网站引用a网站的照片。 nginx防止网站资源被盗用模块 ngx_http_referer_module 如何区分哪些是不正常的用户#xff1f; HTTP Referer…nginx防盗链问题 盗链 就是a网站有一张照片b网站引用了a网站的照片 。 防盗链 a网站通过设置禁止b网站引用a网站的照片。 nginx防止网站资源被盗用模块 ngx_http_referer_module 如何区分哪些是不正常的用户 HTTP Referer是Header的一部分当浏览器向Web服务器发送请求的时候一般会带上Referer告诉服务器我是从哪个页面链接过来的服务器借此可以获得一些信息用于处理例如防止未经允许的网站盗链图片、文件等。因此HTTP Referer头信息是可以通过程序来伪装生成的所以通过Referer信息防盗链并非100%可靠但是它能够限制大部分的盗链情况. 比如在www.google.com 里有一个www.baidu.com 链接那么点击这个www.baidu.com 它的header 信息里就有Refererhttp://www.google.com 防盗链配置要点 [rootnginx-server ~]# vim /etc/nginx/nginx.conf
日志格式添加$http_referer
log_format main \(remote_addr - \)remote_user [\(time_local] \)request \(status \)body_bytes_sent \(http_referer \)http_user_agent $http_x_forwarded_for;
valid_referers 使用方式
Syntax: valid_referers none | blocked | server_names | string …;
Default: —
Context: server, location
盗链实验
准备俩台服务器a服务器用做网站正版发布照片b服务器用作引用a服务器的图片信息的服务器。 a服务器IP192.168.231.171 b服务器IP192.168.231.173 在a服务器的配置文件内
[rootlocalhost ~]# vim /etc/nginx/conf.d/default.conf server {listen 80;server_name localhost;location /{root /usr/share/nginx/html;index 1.jpg;
}
}更改完配置文件 记得重启
[rootlocalhost ~]# nginx -s reload#网站默认发布页面的路径
[rootlocalhost ~]# cd /usr/share/nginx/html/
[rootlocalhost html]# ls
1.jpg 50x.html index.html正常访问a网站
b服务器配置nginx访问页面
由于b服务器也是yum安装的nginx
因此b服务器的nginx默认发布页面路径在 /usr/local/nginx/html/下
[rootdaili ~]# cd /usr/share/nginx/html/
[rootdaili html]# ls
50x.html index.htmlvim index.htmlhtml
headmeta charsetutf-8 #用老做实验 红色的底titleqf.com/title
/head
body stylebackground-color:red;img srchttp://192.168.231.171⁄1.jpg/ #盗用171IP的1.jpg这个图片
/body
/html此时访问b网站由于它盗用了a网站的图片因此 观察a服务器的日志 这就做成了盗链实验
防盗链实验
实验机器 a服务器IP192.168.231.174 真正提供照片的服务器 b服务器IP192.168.231.173 1.防盗链的操作得在真正发布这张图片的服务器修改配置文件
a服务器#vim /etc/nginx/conf.d/default.conf server {listen 80;server_name localhost;location /{root /usr/share/nginx/html;index 1.jpg;
valid_referers server_names 192.168.231.173;
#server_names 只允许指定ip域名来访问资源if (\(invalid_referer) {return 502; #其他ip或者域名来访问a服务器返回502
}}
}重启服务
nginx -s reload
这样就相当于将173这个ip添加到白名单中只有192.168.231.173可以访问a服务器的资源。
通过百度来访问a服务器
[rootdaili ~]# curl -e www.baidu.com -Ik 192.168.231.173
HTTP/1.1 502 Bad Gateway
Server: nginx/1.24.0
Date: Mon, 23 Oct 2023 11:29:07 GMT
Content-Type: text/html
Content-Length: 157
Connection: keep-alive#由于在a服务器的配置文件设置只能IP为192.168.231.173的来访问因此其他ip来访问返回502 平时我们都是通过本机电脑的ip来访问b服务器而curl -e ip/域名 -Ik 要访问的ip 这条命令是我们通过此ip来访问另一个ip。 curl -e www.baidu.com -Ik 192.168.231.173 我们通过百度来访问173IP相当于我们此时的电脑本机变成了百度。 相同的是我们设置为只有百度可以访问a服务器那么b服务器上的图片就会失真打不开
a服务器
[rootlocalhost ~]# vim /etc/nginx/conf.d/default.conf server {listen 80;server_name localhost;location /{root /usr/share/nginx/html;index 1.jpg;
valid_referers server_names www.baidu.com;
if (\)invalid_referer) {return 502;
}
}
}重启服务
nginx -s reload
访问b服务器的网站 三个要素 none : 允许没有http_refer的请求访问资源 blocked : 允许不是http://开头的不带协议的请求访问资源 server_names : 只允许指定ip/域名来的请求访问资源白名单 加none
真正有图片的a服务器
server {listen 80;server_name localhost;location /{root /usr/share/nginx/html;valid_referers none 192.168.231.173;index 1.jpg;
}
}
浏览查看a服务器的发布页面 查看日志
tailf /var/log/nginx/access.log 通过百度来访问a服务器
[rootlocalhost ~]# curl -e www.baidu,com -Ik 192.168.231.174
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 24 Oct 2023 13:07:27 GMT
Content-Type: image/jpeg
Content-Length: 647023
Last-Modified: Fri, 15 Sep 2023 06:06:10 GMT
Connection: keep-alive
ETag: 6503f452-9df6f
Accept-Ranges: bytes不加none
a服务器的配置文件
/etc/nginx/conf.d/default.confserver {listen 80;server_name localhost;location /{root /usr/share/nginx/html;
index 1.jpg;valid_referers blocked www.jd.com;
if (\(invalid_referer) {return 502;}
}
}访问a服务器的网站 因此 none只是决定能不能访问a服务器本身加none可以访问a服务器本身不加none不可以访问a服务器本身。 blocked
本身含义是允许开头不带http的访问成功那就意味着 带http的访问不成功
配置a服务器的配置文件
server {listen 80;server_name localhost;location /{root /usr/share/nginx/html;
index 1.jpg;valid_referers blocked 192.168.231.174;
if (\)invalid_referer) {return 502;}
}
}访问www与http://www 后者就不可以访问
[rootdaili ~]# curl -e http://www.jd.com -Ik 192.168.231.171
HTTP/1.1 502 Bad Gateway
Server: nginx/1.24.0
Date: Mon, 23 Oct 2023 13:02:34 GMT
Content-Type: text/html
Content-Length: 157
Connection: keep-alive[rootdaili ~]# curl -e www.jd.com -Ik 192.168.231.171
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Mon, 23 Oct 2023 13:02:37 GMT
Content-Type: image/jpeg
Content-Length: 647023
Last-Modified: Fri, 15 Sep 2023 06:06:10 GMT
Connection: keep-alive
ETag: 6503f452-9df6f
Accept-Ranges: bytes情况2 加*.jd.com
server {listen 80;server_name localhost;location /{root /usr/share/nginx/html;valid_referers none blocked .jd.com ;index 1.jpg;
}
}[rootdaili ~]# curl -e http://www.jd.com -Ik 192.168.231.174
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 24 Oct 2023 13:31:52 GMT
Content-Type: image/jpeg
Content-Length: 647023
Last-Modified: Fri, 15 Sep 2023 06:06:10 GMT
Connection: keep-alive
ETag: 6503f452-9df6f
Accept-Ranges: bytes[rootdaili ~]# curl -e www.jd.com -Ik 192.168.231.174
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 24 Oct 2023 13:32:00 GMT
Content-Type: image/jpeg
Content-Length: 647023
Last-Modified: Fri, 15 Sep 2023 06:06:10 GMT
Connection: keep-alive
ETag: 6503f452-9df6f
Accept-Ranges: bytes这里虽然配置文件里面写了blocked但是白名单里面定义的是.jd.com,因此他有俩个 一个是www开头一个是http:// 因此访问http://jd.com 可以访问 server {listen 80;server_name localhost;location /{root /usr/share/nginx/html;valid_referers none blocked www.jd.com ;index 1.jpg;
}
}[rootdaili ~]# curl -e www.jd.com -Ik 192.168.231.174
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 24 Oct 2023 13:35:17 GMT
Content-Type: image/jpeg
Content-Length: 647023
Last-Modified: Fri, 15 Sep 2023 06:06:10 GMT
Connection: keep-alive
ETag: 6503f452-9df6f
Accept-Ranges: bytes[rootdaili ~]# curl -e http://www.jd.com -Ik 192.168.231.174
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 24 Oct 2023 13:35:19 GMT
Content-Type: image/jpeg
Content-Length: 647023
Last-Modified: Fri, 15 Sep 2023 06:06:10 GMT
Connection: keep-alive
ETag: 6503f452-9df6f
Accept-Ranges: bytes这里尽管定义配置的是www.jd.com 按道理输入http://jd.com 是访问不了的但是在配置文件里面location是在server下的而server是在http下面的因此输入http://jd.com 也是可以访问的。 相同那么加了blocked 由于 白名单里面没有baidu.com 因此 访问www.baidu.com可以访问访问http://www.baidu.com 就不可以访问。
[rootlocalhost conf.d]# curl -e www.baidu.com -Ik 192.168.231.174
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 24 Oct 2023 13:57:27 GMT
Content-Type: image/jpeg
Content-Length: 647023
Last-Modified: Fri, 15 Sep 2023 06:06:10 GMT
Connection: keep-alive
ETag: 6503f452-9df6f
Accept-Ranges: bytes[rootlocalhost conf.d]# curl -e http://www.baidu.com -Ik 192.168.231.174
HTTP/1.1 502 Bad Gateway
Server: nginx/1.24.0
Date: Tue, 24 Oct 2023 13:57:32 GMT
Content-Type: text/html
Content-Length: 157
Connection: keep-alive
- 上一篇: 织梦医疗网站源码关键词上首页软件
- 下一篇: 织梦怎么做英文版网站镇江seo网络推广定制
相关文章
-
织梦医疗网站源码关键词上首页软件
织梦医疗网站源码关键词上首页软件
- 技术栈
- 2026年04月20日
-
织梦响应式网站模板潮州哪里有做网站
织梦响应式网站模板潮州哪里有做网站
- 技术栈
- 2026年04月20日
-
织梦系统做的商城网站深圳专业英文网站建设
织梦系统做的商城网站深圳专业英文网站建设
- 技术栈
- 2026年04月20日
-
织梦怎么做英文版网站镇江seo网络推广定制
织梦怎么做英文版网站镇江seo网络推广定制
- 技术栈
- 2026年04月20日
-
织梦招商加盟网站源码东莞微信网站建设推荐
织梦招商加盟网站源码东莞微信网站建设推荐
- 技术栈
- 2026年04月20日
-
织梦做的网站后台宁波网络推广团队
织梦做的网站后台宁波网络推广团队
- 技术栈
- 2026年04月20日
