首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequestFiltering不适用于MS设备名称路径

RequestFiltering不适用于MS设备名称路径
EN

Stack Overflow用户
提问于 2016-01-15 10:54:53
回答 2查看 4.7K关注 0票数 3

我试图平息我们最近所做的PCI扫描失败,其中指出:

微软ASP.NET MS-DOS设备名称DoS 概要:远程web服务器使用的框架存在拒绝服务漏洞。影响:运行在远程主机上的web服务器似乎使用的是Microsoft ASP.NET,并且可能受到拒绝服务漏洞的影响。请求包含MS设备名称的URL可能会导致web服务器暂时失去响应。

简单地说,我们访问应用程序上的一个URL,比如/AUX/.aspx,我们得到了500个错误。

我使用RequestFiltering过滤掉这些请求,然后返回404,而服务器不试图处理请求。

我的web.config的节选如下:

代码语言:javascript
复制
<system.webServer>
    <security>
        <requestFiltering>
            <denyUrlSequences>
                <add sequence="/AUX/.aspx" />
            </denyUrlSequences>
        </requestFiltering>
    </security>
</system.webServer>

然而,这是行不通的,它仍然返回一个500。

我希望它能返回404。

如果我向denyUrlSequences添加以下catch-all url,那么整个站点就会产生预期的404。

代码语言:javascript
复制
<add sequence="/" />

值得一提的是,该应用程序是运行在IIS7.5上的MVC应用程序(Windows2008MVC)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-09 13:20:31

只需要解决这个问题。

我的解决方案是禁用.Net错误页和启用IIS页面。

当您将自定义错误处理从较高的.Net级别移到更低的IIS级别时,代码将从500个更改为404。

PCI测试通过:-)

票数 4
EN

Stack Overflow用户

发布于 2016-03-22 21:44:17

我自己也为此挣扎了一段时间。我认为500个响应代码对于URL中的MS名称是正确的,并且您不需要添加任何内容来请求过滤。

您会注意到,如果您使用任何MS名称(https://support.microsoft.com/en-us/kb/74496)而不对您的配置做任何操作,您将得到500个错误。但是,如果您为"foo“这样的其他内容添加了一个RequestFiltering denySequence,那么在浏览到/foo时将看到404.5错误。

如果您将relaxedUrlToFileSystemMapping="true“与请求筛选denySequence条目一起添加到httpRuntime元素中,那么您将得到MS-DOS名称的404.5。

但是禁用默认的asp.net配置,这样您就可以得到其他的东西,而对于一个具有MS名称的URL,500个响应是来自PCI遵从性检查的一个令人厌恶的请求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34809485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档