【发布时间】:2010-04-14 15:23:35
【问题描述】:
我知道有一些工具可以让您查看 asp.net viewstate 的内容。是否可以通过将<machineKey ... />节点添加到web.config来查看和修改viewState的内容?
【问题讨论】:
标签: asp.net security viewstate
我知道有一些工具可以让您查看 asp.net viewstate 的内容。是否可以通过将<machineKey ... />节点添加到web.config来查看和修改viewState的内容?
【问题讨论】:
标签: asp.net security viewstate
当然。 ViewState 只是 base64 编码的(除非您指定它应该被加密)。这是写ViewState viewer的人的链接。这是Fritz Onion 的另一个。您可能无法直接修改 ViewState(即在代码之外),因为 ASP.NET 已经进行了检查以专门确保没有任何东西篡改 ViewState。有关更多信息,请参阅EnableViewStateMAC 设置。
更新
由于链接失效,指向各种查看器的链接不再有效。不过简单搜索“viewstate viewer”就可以找到网上的其他人如ASP.NET ViewState viewer
【讨论】:
machineKey 元素中指定了 decryptionKey 属性,那么您可以使用与加密它相同的方法来解密 ViewState(无论它是在加密之前还是之后进行 base64 编码我不知道)因为你知道关键。如果您没有指定decryptionKey,那么它是自动生成的,我怀疑是否有办法获取该密钥。如果您禁用 enableViewStateMAC,您可以在代码之外更改 ViewState(当然,您不应该这样做)。
请看这里How to decode viewstate 我提供了完整的源代码来从视图状态字符串中获取 StateBag。加密状态也可以使用相同的方法解密,但分配密钥。
【讨论】:
编辑:这是一个在线视图状态解码器的新链接,因为原来的链接不再可用。
https://www.httpdebugger.com/Tools/ViewstateDecoder.aspx
原文:
我喜欢这个视图状态解码器。非常容易使用。
删除过时的链接
【讨论】: