检测视图状态篡改

在我的asp.net项目中已经看到viewstate已经改变了。 有没有检查我的ViewState是否被篡改? (理想情况下用C#)

viewstate使用machinekey(默认服务器mac)签名,但是如果它只是你得到的错误那么它可能是传输错误或类似的(如果您运行的服务器场确保在所有机器上设置相同的机器密钥)

此外,如果您的后安全性不在视图状态中存储感知信息,请将其保存在会话中。

您可以在ViewState中添加加密的校验和,并在回发后检查它是否仍然正确

编辑:阅读凤凰发布的链接后,似乎已经有这样的机制在ASP.NET中构建,所以我的建议可能没用…

有一种机制可以检查视图状态是否存在篡改攻击。

您是否收到此页面的视图状态无效,可能是已损坏的exception并怀疑是否被篡改? 在回发之间删除控件时会出现此exception。