请求筛选模块被配置为拒绝包含双重转义序列的请求

原文链接:https://www.cnblogs.com/ymworkroom/articles/13426269.html

IIS7.0、IIS7.5、IIS8.0等提示“请求筛选模块被配置为拒绝包含双重转义序列的请求”的解决方法小结

错误信息

请求筛选模块被配置为拒绝包含双重转义序列的请求。HTTP 错误 404.11 - Not Found

下面是解决方法

IIS中找到请求筛选,右侧:编辑功能设置

 勾上允许双重转义即可。

关于双重转义

文件目录有这样一个包含了加号的文件:2015年日历表(A4+版).pdf

现在要求下载此文件,考虑这样一个url /UploadFile/2015年日历表(A4+版).pdf

如果在浏览器访问这个url,有时候会出现404.11的错误

HTTP Error 404.11 - Not Found

请求筛选模块被配置为拒绝包含双重转义序列的请求

这是什么原因呢?

在window下,加号(+)是合法的文件名,但是在url里代表了不同的意思

若是作为queryString的一部分,那么+号代表空格

访问 https://www.baidu.com/?dd=ha+ha 和 https://www.baidu.com/?dd=ha%20ha效果是一样的,解码后,都代表了空格

但是+号作为Url component(注意不是作为queryString)时,就是+号本身,不会转义

例如 http://www.cnblogs.com/imust+2008/p/6829927.html

IIS7以及以上版本,集成了一个URLScan工具,用于扫描url,检测不安全的字符,此工具的Request Filtering模块用于过滤不安全的请求。

https://docs.microsoft.com/en-us/iis/manage/configuring-security/use-request-filtering

其中的double-encoded requests filter(双重转义过滤器),用于过滤双重转义序列。

当url出现双重转义序列时,IIS将对url进行两次url规范化(url normalization),当第一次规范化后的字符串与第二次规范化的字符串不一致时,IIS认为这是危险的url,IIS将拒绝这一请求,并返回404.11错误。

posted @   yinghualeihenmei  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2023-07-10 测试内容先后顺序
点击右上角即可分享
微信分享提示