IIS环境下文件名含coupon的Ajax请求返回HTML而非JSON,求原因
问题原因分析(IIS环境下含"coupon"文件名请求返回HTML而非JSON)
根据现象判断,核心问题是IIS环境的安全规则或路由配置拦截了含"coupon"关键词的请求,具体可能的原因如下:
- IIS URLScan模块拦截:URLScan是IIS自带的安全工具,默认会拦截特定敏感关键词的请求。如果
coupon被添加到UrlScan.ini的[DenyUrlSequences]列表中,所有包含该关键词的URL都会被拦截,服务器会返回默认错误HTML页面,而非目标PHP文件的JSON输出。 - Web应用防火墙(WAF)/安全插件拦截:服务器上部署的第三方WAF(比如ModSecurity)或IIS安全插件,可能将
coupon视为与优惠券、折扣相关的敏感关键词,触发防护规则,直接返回拦截页面(HTML格式)。 - 自定义URL重写/路由规则冲突:如果站点配置了IIS URL重写模块,或使用ASP.NET等框架的路由规则,存在匹配含
coupon字符串的URL规则,会将请求导向错误页面或其他HTML页面,而非目标PHP脚本。
验证与排查步骤
- 检查URLScan配置:
打开C:\Windows\System32\inetsrv\urlscan\UrlScan.ini(64位系统可能在C:\Windows\SysWOW64\inetsrv\urlscan),查找[DenyUrlSequences]节点,确认是否存在coupon相关条目。 - 查看URL重写规则:
在IIS管理器中进入站点的「URL重写」模块,检查所有规则,确认是否有匹配含coupon的URL并进行跳转/重写的规则。 - 检查安全工具日志:
查看服务器上WAF、杀毒软件或安全插件的拦截日志,确认是否有针对含coupon请求的拦截记录。 - 临时测试:
临时禁用URLScan、WAF或安全插件,重新发起请求,验证是否能正常返回JSON,以此确认是否是安全规则导致的问题。
内容的提问来源于stack exchange,提问作者Min Lee
相关产品推荐
相关产品推荐

