是否可以解码并因此篡改渲染的_EVENTVALIDATION字段?我发现了很多关于它的内容的信息,但却找不到任何真正说明价值本身是否受到保护以免被篡改的信息。我确实试图对它进行base64解码并得到乱码,所以我假设它实际上是加密的,但如果有人确切知道并且可以验证,那就太棒了。
我知道Viewstate未加密(尽管您可以将其设置为)。我对此不感兴趣,我只对事件验证感兴趣。
我发现了一个类似的问题:Is it possible to decode EventValidation and ViewState in ASP.NET?但似乎没有人对事件验证字段有具体的答案。
具体示例:我有一个用户可以运行的可用报告的下拉列表。它填充了一些“成员”报告,但也包含一些在“OnLoad”期间呈现的“仅管理员”报告,并且仅在用户是管理员时才添加它们。当页面回发时,我是否可以信任事件验证例程是安全的,并且用户没有将“仅管理员”报告注入可接受值列表中,或者我应该在我的回发处理程序中重新检查权限以验证用户实际上可以使用所选的报告吗?
答案 0 :(得分:5)
首先,事件验证是针对XSRF的后备保护,而不是针对恶意用户。
如果您想确保他们只能运行允许他们运行的报告,那么检查他们是否可以在您运行报告时运行报告。
其次,事件验证数据已加密并具有MAC。篡改应该很难。但依靠它并不是解决问题的正确方法。
答案 1 :(得分:0)
如果您没有关闭原生注射保护设置,那么如果有人试图编辑控件值列表并将其发回,则会导致错误。