快捷菜单
常用功能一站直达
更多功能请点顶栏「快捷菜单」
警告
以下内容仅供参考!自己利用网站服务器的nginx的某个目录/images来作为md图床使用,如何防止别人利用爬虫程序来爬取我网站图床里/images下的所有图片呢?
gpt内容:
防止爬虫爬取网站/images目录下的图片,你可以采取以下几种措施来保护你的Nginx服务器上的图床:
修改 robots.txt 文件
robots.txt 文件,使用 Disallow 语句来告诉遵守规则的爬虫不要爬取 /images 目录。1User-agent: *
2Disallow: /images/但是请注意,不是所有的爬虫都会遵守 robots.txt 的规则,恶意爬虫通常会忽视这个文件。
但是,在哪里创建呢?
使用 HTTP 基本认证
/images 目录。1location /images/ {
2 auth_basic "Restricted Access";
3 auth_basic_user_file /path/to/htpasswd;
4}这个方法可以有效防止未授权的用户访问图片,但如果密码泄露或被破解,仍然存在风险。
限制IP访问
/images 目录。1location /images/ {
2 allow 192.168.1.1; # 允许的IP地址
3 deny all; # 拒绝其他所有请求
4}限制 Referer
1location ~* \.(gif|png|jpe?g)$ {
2 valid_referers none blocked yourdomain.com *.yourdomain.com;
3 if ($invalid_referer) {
4 return 403;
5 }
6}这个方法可以一定程度上阻止图片被其他网站直接引用,但 Referer 头可以被伪造,因此并不是完全可靠的。
使用防爬虫规则
limit_req_module 和 limit_conn_module 来限制每个IP的访问频率和连接数。 1http {
2 limit_req_zone $binary_remote_addr zone=images:10m rate=5r/m;
3 limit_conn_zone $binary_remote_addr zone=addr:10m;
4}
5
6server {
7 location /images/ {
8 limit_req zone=images burst=10 nodelay;
9 limit_conn addr 3;
10 }
11}加密图片名称
/images 目录的图片文件名,并使用不容易被预测的命名模式。这样即使有人访问到了一部分图片,但在你更新命名后他们的链接也会失效。设置CORS策略
1location /images/ {
2 if ($http_referer !~* ^(https?://)(www\.)?yourdomain\.com) {
3 add_header 'Access-Control-Allow-Origin' 'yourdomain.com';
4 }
5}请记住,没有一种方法是万能的,可能需要结合使用多种策略来有效保护你的服务器。另外,确保对服务器进行定期的安全检查和维护,以便及时发现并处理安全漏洞。
日历 · 精选 · 友链 · 更多
如果内容对你有帮助,欢迎请我喝杯咖啡 ☕



One的公众号
爱折腾博客的小白