4

我遇到了无法解码视图状态的错误,其中一些错误可追溯到 http post 数据被截断为正好 48K (49152) 字节的事实。

这被列为.NET 2.0 SP1中已修复的错误之一。我目前有 .NET 3.5 SP1。

每个帖子似乎都不会出现这个问题。有任何想法吗?

.NET Framework 2.0 Service Pack 1 中修复的KB 945757问题

KB 925248修复:当 ASP.NET 连接的应用程序收到 POST 请求时,POST 请求中的数据被截断为 49,152 字节

编辑:在我将编码指定添加到表单后,在我的错误日志中发现了这些错误之一。它显示内容类型已正确设置为 url-encoded,并且内容长度超过 49152。但错误日志中的 post 数据转储再次恰好是 49152 字节。我可以通过在页面上多次单击提交按钮来重新创建它。我认为用户这样做是因为由于某种原因页面处理速度非常慢(之前要快得多)。可能是随后的提交遇到了这种截断。我的解决方法可能是让页面再次变快和/或从第一次单击中禁用按钮。

4

2 回答 2

1

我确实知道IIS5有这个问题,它会截断48Kb 以上的所有数据,除非表单发送为application/x-www-form-urlencoded,请尝试将其设置为您content-type喜欢的:

<form accept-charset="utf-8" 
      enctype="application/x-www-form-urlencoded" ... >

</form>

渗透测试人员可以提出这个问题。

如果您还搜索HTTP Smuggling,您会发现同样的问题。

您可以阅读有关 HTTP Smuggling 的更多信息。

于 2012-01-20T20:30:25.020 回答
1

我遇到过一次,结果发现是浏览器截断了它!

我不记得是哪一个了。我想说它是firefox,但我不能确定。

解决方法是将表单的内容类型更改为multipart/form-data.

于 2012-01-20T20:45:02.870 回答