如何处理接入WAF后报错414 Request-URI Too Large?
故障现象
防护网站接入WAF后,用户不能正常访问网站,提示“414 Request-URI Too Large”错误,如图1所示。
可能原因
防护网站开启了“JS脚本反爬虫”,由于用户的客户端浏览器没有JavaScript解析能力,客户端会缓存包含WAF返回JavaScript代码的页面,而用户每次访问防护网站时都会访问该缓存页面,WAF由此判定用户访问请求为非法的浏览器或爬虫工具,访问请求验证一直失败,造成无限循环,最终导致URI长度超出浏览器限制,访问网站失败。
开启JS脚本反爬虫后,当客户端发送请求时,WAF会返回一段JavaScript代码到客户端。如果客户端是正常浏览器访问,就可以触发这段JavaScript代码再发送一次请求到WAF,即WAF完成JS验证,并将该请求转发给源站,如图2所示。
- 如果客户端是爬虫访问,就无法触发这段JavaScript代码再发送一次请求到WAF,即WAF无法完成js验证。
- 如果客户端爬虫伪造了WAF的认证请求,发送到WAF时,WAF将拦截该请求,js验证失败。
处理建议
当客户端的浏览器没有JavaScript解析能力时,请参照以下操作步骤关闭JS脚本反爬虫。
- 登录Web应用防火墙控制台。
- 在控制台左上角,单击
图标,选择区域或项目。 - (可选) 如果您已开通企业项目,在左侧导航栏上方单击“按企业项目筛选”下拉框,选择您所在的企业项目。完成后,页面将为您展示该企业项目下的相关数据。
- 在左侧导航栏,选择。
- 在防护策略列表,单击目标策略名称,进入目标策略的防护规则配置页面。
您也可以在页面,单击目标域名“防护策略”列的“已开启防护项”后的数字,进入网站绑定的防护策略的规则配置页面。
- 单击“网站反爬虫”配置框,确认已开启网站反爬虫防护规则。
:开启状态。 - 选择“JS脚本反爬虫”页签,关闭JS脚本反爬虫,即JS脚本反爬虫的“状态”为
,如图3所示。


