微软哈希DoS安全更新施加1000个表单字段限制,破坏大型表单.我们应该如何重构?



新发布的(12月29日)微软安全更新解决了"哈希DoS"攻击漏洞,规定了1000个表单参数的限制。不幸的是,这个限制打破了"非常大"的表单(例如带有动作链接的项目列表,例如200个项目+ 5个复选框= 1000个表单字段)。我同意这么大的页面不是很常见,也不是理想的可用性,但它们确实存在(有时是有充分理由的),并且被新补丁渲染得无法正常工作。

有关漏洞/microsoft补丁的详细信息可以在这里找到:

http://weblogs.asp.net/scottgu/archive/2011/12/28/asp-net-security-update-shipping-thursday-dec-29th.aspx

http://www.troyhunt.com/2011/12/has-hash-dos-patch-been-installed-on.html

有没有人有关于如何有效地转换旧的ASP。. NET表单页面,具有>1000个表单字段,在补丁系统上运行?(除了人为地限制"页面大小"以包含<1000字段)?

我从Scott Guthrie那里得到了一些信息,使这不是问题:

Friday, December 30, 2011 11:15 PM by ScottGu Pedro/PSmo,

新发布的安全更新地址施加了限制1000个表单参数

正确-一旦应用了补丁,它默认限制每个HTTP post的单个表单字段数量为1000。这远远低于任何类型的DoS阈值,我们认为对于除了少数应用程序之外的所有应用程序都足够大。

这个限制是可配置的,但是,如果你有场景,你需要发布超过1000个字段,你可以增加它。您可以通过在web的<appSettings>部分添加设置来实现这一点。为您的应用程序配置文件并设置适当的值。

例如:

<appSettings>
  <add key="aspnet:MaxHttpCollectionKeys" value="some number here"/>
</appSettings>

我们已经启用了这个,所以你可以在任何应用程序中设置它,而不用担心它在未打补丁的服务器上被破坏。

希望有帮助,

斯科特

是否可以对每篇文章的更改数量施加限制?如果是这样,您可以执行一个ajax调用,只提交更改后的字段。如果这是不可接受的,创建一个隐藏的表单字段(是的,另一个字段),使用脚本收集要提交的所有值,将它们串在一起形成可解析的格式,将其放入隐藏字段,并提交隐藏字段。

最新更新