在 ASP.NET 中,有一个设置 EnableHeaderChecking,可确保响应标头中不输出 CRLF(换行符)。这可防止可能的“响应拆分”攻击。
是否有任何针对经典 ASP 页面的等效配置 - 特别是在 IIS 5.1 中?
我有一个大型的经典 ASP Web 应用程序,其中似乎有些 Response.Redirect 调用没有过滤用户输入。因此它们很容易受到响应拆分攻击。
解决方案是更新所有这些页面,以便它们过滤用户输入。服务器级别是否有任何设置可以防止(或编码)响应标头中的换行符?
答案1
IIS 5.1 没有简单的方法来更改响应标头。如果您愿意编写 ISAPI 扩展,您可以这样做,但升级到 Win7/2008 (IIS7) 并使用 HTTP 模块可能会更轻松。
如果无法升级到 IIS7,最简单的方法可能是在代码中编写一个辅助方法,如 CleanResponseRedirect(url),它可以在 Response.Redirect 之前为您完成清理。然后用 CleanResponseRedirect() 替换所有 response.redirects。