如何在 Web 应用程序中操作视图状态数据



我正在测试一个 Web 应用程序,它是一个出勤提交页面。 功能是,如果两个用户碰巧更新了相同的学生出勤率,我们将显示最新更改的更改警告。

为此,开发人员已经实现了一些逻辑,例如他们将保存我们在文本框中输入的值,这些值尚未保存在视图状态中。他们将比较视图状态、当前数据和数据库数据的值,并显示最新更改。

作为测试的一部分,我想知道无论如何都在那里,以便我可以修改/破解开发人员存储在视图状态中的数据。

你不能使用javascript做到这一点,你可以通过JavaScript访问隐藏字段"__ViewState",但它都是加密的。您只能看到加密的值。

即使您通过javascript更改它,服务器端也会检查数据是否被篡改。

您可以使用以下代码解密并查看视图状态。为此,必须将视图状态设置为未加密 更多信息

string str = System.Text.Encoding.ASCII.GetString(Convert.FromBase64Strin‌​g(txtViewState.Text)‌​);

但是篡改视图状态是不可能的,因为默认情况下EnableViewStateMac属性在 ASP.NET 中是true的更多信息

最新更新