今天有人反馈我的站点,通过360搜索、百度搜索均出现无法访问,服务器都返回HTTP状态“403 Forbidden”,浏览器提示“You don’t have permission to access the URL on this server.” 但是通过浏览器打开显示正常。下面分享一下我的解决方法!

cdn问题.png

经过一系列分析发现排除,因为我使用的是阿里CDN设置时启用了防盗链并在Referer白名单只开放了自己的域名。从360、百度、谷歌等这些搜索引擎过来的链接,HTTP head头部的Referer是带着搜索引擎的域名,例如百度过来的链接,Referer携带着baidu.com,但是CDN白名单的Referer里面并没有Baidu.com,导致用户通过搜索引擎点击访问站点返回HTTP状态403。

解决方法

1、 在Referer白名单中添加 *.baidu.com *.so.com以及其他搜索引擎,外链Referer。例如我使用的阿里云CDN防盗链Referer白名单设置:

Referer.png

2、 禁用CDN的防盗链功能。阿里云CDN可以选择Referer黑名单功能,但是要确保自己的域名和外链域名不在Referer黑名单中。腾讯云CDN可以清空Referer白名单设置。

3、 如果使用外链做图床和做存储,可以在外链站点设置Referer白名单,添加来源站点域名为本站域名来防御恶意盗链等这些情况。

因为网站访问可能有各种各样的情况,数不胜数的Referer 你不可能每一个都添加进去,所以个人建议尽量不要启用防盗链,以免导致用户无法正常访问站点。但是可以从图床那些去添加限制,来保证站点的正常访问。