如何在不引入安全漏洞的情况下启用 URL 中的两个连续句点

如何在不引入安全漏洞的情况下启用 URL 中的两个连续句点

我有一个在 IIS 7.5 上运行的网站,其中包含一些用户生成的内容。最近,我遇到了一个文件名中有两个句点的文件。我们把它称为foo..bar.jpg。当我尝试访问它时,我收到 400 错误,毫无帮助地只显示Bad Request纯文本。

搜索几乎一无所获,只是这个问题来自 IIS 论坛,其中指出这是旨在防止通过父目录访问 Web 应用程序外部文件的行为。../他们提供指示关于如何禁用此项检查,这可能会使我的网站遭受路径遍历攻击。

此检查过于严格,会阻止许多我希望在我的应用程序中支持的无害文件名。我可以想出一些解决方法,例如强制重命名文件或通过.ashx处理程序为它们提供服务,但这两种方法都不太好用。

有没有什么方法可以支持包含双句点的 URL,StaticFileHandler而不会引入路径遍历漏洞?

相关内容