2011-07-06 44 views
1

这是一个澄清的问题:我学的MCTS 70-515和我的训练包它指出隐藏字段:“用户可以查看或修改存储在隐藏字段中的数据”asp.net隐藏字段 - 被修改?

现在我意识到用户可以查看页面的来源,然后显示隐藏的字段数据。但我对修改部分很好奇。用户如何修改隐藏字段数据以及它如何影响网站?即使他们通过查看源修改数据,他们也无法保存页面,然后将数据发回服务器。

我错过了作者假设我知道的是什么?

好吧,所有的答案都说同一件事(在这个时候)。我想如果作者会说“精明”用户那么这可能会给我带来好处。我想我一直认为用户不会知道Firebug或任何其他可以在页面显示给用户后可以进行操作的工具。

谢谢你的答案。我很感激!

+1

有一些浏览器插件可让您修改/设置任何输入字段的值。更改位于客户端网站上,但在下次回发时,该值将在服务器网站上更新。 –

回答

3

隐藏字段 只是一个键值对 ,在序列化并发送到服务器时表示为键值对,就像任何其他表单元素一样。有许多方法可以修改隐藏字段 - 一种是在浏览器中使用FireBug或其他“开发者控制台”,另一种是手动编写请求并将其发送到服务器。

+0

'隐藏字段只是一个键值对',不,它被用作键值对,它是一个HTML输入或隐藏的元素和asp控件,来自回发的HTTP表单中的值。你也错过了隐藏的最可能的方式是在野外改变,这是JavaScript。 – StuperUser

+0

@StuperUser你是对的 - 隐藏字段不是键值对。我已经稍微编辑了这篇文章。 –

1

很简单,打开一个程序,如FireBug,并更改元素值。请记住,标记是客户端,因此服务器信任客户端发送正确的数据 - 但是,这很容易规避。

最好在会话中存储对应用程序安全性至关重要的数据,而数据保留在服务器端并与客户端绑定。 ASP.NET可以组成哈希来防止未经授权的字段修改,其他事情。

2

除了使用诸如Firebug之类的调试工具之外,用户可以通过其他交互(使用JavaScript)为其更改而间接更改隐藏字段的值。通常,用户不知道他们在做什么的技术细节(他们都不知道,也不在意隐藏字段发生了变化)

其他工具(如Fiddler)可能拦截Web请求并且更改隐藏(或任何)字段的值,因为它在回发中传输到服务器。