IIS网址提示4048
昨天下午,址提我正调试一个客户的址提网站。域名解析正常,址提SSL证书刚续费,址提端口80和443都开着——浏览器却甩给我一个刺眼的址提4048。不是址提404,是址提4048。这数字怪得很,址提像某个程序员随手敲的址提密码。 查了IIS日志,址提状态码栏赫然写着4048。址提微软官方文档翻遍了,址提只说这是址提"请求筛选模块拒绝的请求"。可我的址提URL明明就一个干净的 我盯着IIS管理器的"请求筛选"功能看了十分钟。那玩意儿平时根本没人碰。双击进去,里面有个"URL白名单"标签页——我压根没建过任何规则。但诡异的是,列表里躺着一条 删掉那条规则,刷新页面,好了。整个过程不到两分钟,但排查耗了我整个下午。这让我想起去年另一个案例:某电商网站间歇性出现4048,最后发现是WAF(Web应用防火墙)的误报——它把正常的 说真的,4048这个错误码设计得挺坑。它不像404那样直白——"资源不存在"你一眼就能看懂。4048藏在IIS的"请求筛选"和"URL重写"模块的夹缝里,报错时连个友好提示都没有。浏览器只显示"HTTP错误404.8",但真正的原因是请求被安全模块按规则拦了。你查URL、查权限、查应用程序池,全都正常,就是忘了看一眼那个平时没人打开的功能。 要是你也被这数字折磨过,直接去IIS管理器里点你的站点,找到"请求筛选"(没有的话就安装"请求筛选"角色服务),检查"规则"标签页有没有多余的拒绝规则。再看"文件扩展名"和"隐藏段"——有些安全扫描工具会自动往这里塞东西。另外,如果服务器上装了URL Scan或类似的ISAPI筛选器,也一并卸了试试。 最后提醒一句:4048和4047、4049是亲兄弟。4047是"请求体太大被拒",4049是"请求头太长被拒",都是请求筛选模块的锅。这些错误码不像500那样能触发详细的堆栈日志,排查基本靠猜。但记住一个原则——凡是404x系列,先怀疑安全模块,别在应用代码里浪费时间。我吃过亏,希望你别再吃。/index.aspx,连个查询字符串都没有。址提问题不在URL本身,而在URL之外。*.aspx的拒绝规则。谁加的?客户说上周让外包公司做过安全加固,八成是那帮人用脚本批量导入规则时手滑了。/product?id=123当成SQL注入拦截了。IIS的请求筛选模块和第三方WAF叠加时,规则冲突能产生各种匪夷所思的组合错误。
-
上一篇
-
下一篇