我的知识记录

IIS防盗链允许空Referer配置_Apache IIS设置防盗链教程详解

网站被恶意采集或攻击时,通过规则屏蔽IP和域名是最直接的防护手段。防盗链规则基于Referer判断,但部分浏览器或客户端(如微信内置浏览器、某些APP)不发送Referer,导致正常用户也被防盗链拦截。HTTPS站点配置防盗链后,从HTTP页面引用HTTPS资源时Referer不发送(浏览器安全策略),导致防盗链误拦截。

排查下来,故障根源集中在几个方面。IIS的URL Rewrite防盗链规则中使用了{HTTP_REFERER}变量,但条件判断的逻辑写反了(应该是不等于白名单则拦截,写成了等于白名单则拦截),导致白名单域名被拦截。防盗链规则中没有排除搜索引擎蜘蛛的图片抓取,导致百度图片、谷歌图片搜索无法收录网站图片,影响图片搜索流量。Apache的防盗链规则中没有允许空Referer,部分浏览器(如HTTPS到HTTP的跳转、隐私模式)不发送Referer头,导致这些请求被防盗链拦截,图片无法显示。防盗链规则中使用了严格的Referer匹配(如必须以http://开头),HTTPS站点的Referer是https://开头,导致HTTPS页面的请求被误拦截。CDN缓存了防盗链返回的403响应,后续正常用户访问也收到缓存的403,需要在CDN中配置缓存规则排除防盗链响应或在CDN层面配置防盗链。防盗链白名单域名中只写了example.com,没有写www.example.com,或反过来,导致带www和不带www的其中一种形式被误拦截。防盗链规则匹配的文件后缀列表不完整,只写了jpg和png,没有写gif、webp、svg等格式,导致部分图片格式没有被防盗链保护。

经过大量案例验证,以下方法能解决绝大多数同类问题。IIS防盗链替代图片:将action type改为Redirect,。虚拟主机用户:通过空间商控制面板的"防盗链"功能配置,通常只需要输入允许的域名和选择要保护的文件后缀,空间商会自动生成规则,比手动编辑.htaccess更简单可靠。IIS web.config防盗链:。允许空Referer:规则中必须包含允许空Referer的条件(Apache中RewriteCond %{HTTP_REFERER} !^$,IIS中),否则微信、QQ等不发送Referer的客户端无法显示图片。Apache .htaccess图片防盗链:RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !^https?://(www.)?example.com/ [NC] RewriteRule .(jpg|jpeg|png|gif|webp|svg|bmp)$ - [F,NC,L],!^$允许空Referer,!^https?://(www.)?example.com/允许本站域名(含http/https和www/非www)。验证规则:在其他网站的HTML中引用你的图片URL,访问该页面如果图片不显示(403)或显示替代图片则防盗链生效;在自己网站访问确认图片正常显示;用curl -e "https://www.other.com/" https://www.example.com/image.jpg测试返回403。HTTPS站点:白名单域名正则使用^https?://匹配http和https两种协议,不要只写^http://,否则HTTPS页面的请求会被误拦截。

从更广泛的运维视角来看,还有一些容易被忽略的诱发因素。CDN或反向代理缓存了旧的响应结果,规则修改后用户仍看到缓存的旧页面。多个配置文件中的规则互相冲突,.htaccess和主配置文件或子目录配置同时匹配同一URL。

实际操作中还需要注意以下细节。修改规则前务必备份原配置文件,规则出错导致网站500错误时能快速回滚。伪静态规则中避免使用过于宽泛的匹配,防止误拦截正常页面。屏蔽规则配置后定期检查日志,确认被屏蔽的访问确实是恶意行为。蜘蛛屏蔽通过User-Agent识别,部分蜘蛛会伪造UA,需要结合IP段一起判断。虚拟主机用户没有服务器管理权限时,通过空间商控制面板或上传配置文件(.htaccess/web.config)来实现规则。

除了上述问题,实际运维中还可能遇到以下相关故障。IP屏蔽规则在CDN环境下不生效,CDN回源IP被屏蔽导致所有用户无法访问,需要获取真实客户端IP。域名屏蔽后所有域名都无法访问,检查规则中的条件判断是否写反了。IIS web.config规则报错500,检查XML语法是否正确以及URL Rewrite模块是否安装。IP屏蔽后正常用户也无法访问,可能是屏蔽范围过大,使用了过于宽泛的CIDR段。

随着云服务器和CDN普及,部分规则可以在CDN层面配置,减轻源站服务器的处理压力。

IIS防盗链允许空Referer配置_Apache IIS设置防盗链教程详解

标签:

更新时间:2026-08-27 11:45:38

上一篇:新网虚拟主机访问量暴增排查完整流程_日志分析与定位

下一篇:wordpress主题编辑器使用_后台在线编辑与注意事项