这是一个澄清问题:我正在学习MCTS 70-515,在我的培训套件中它说明了隐藏字段:“用户可以查看或修改存储在隐藏字段中的数据”
现在我知道用户可以查看页面的来源,然后显示隐藏的字段数据。但我很好奇修改部分。用户如何修改隐藏的字段数据以及它将如何影响网站?即使他们通过View Source修改数据,他们也无法保存页面,然后将数据发回服务器。
作者假设我知道我错过了什么?
好的,所有答案都说同样的话(此时)。我想如果作者会说“精明”用户那么可能会让我失望。我想我总是假设用户不会知道Firebug或任何其他可以在页面显示给用户后进行操作的工具。
感谢您的所有答案。我很感激!
答案 0 :(得分:3)
隐藏字段是,只是一个键值对,在序列化并发送到服务器时表示为键值对,就像任何其他表单元素一样。修改隐藏字段有多种方法 - 一种是在浏览器中使用FireBug或其他“开发者控制台”,另一种是手动编写请求并将其发送到服务器。
答案 1 :(得分:2)
如您所知,可以在回发期间更改服务器上隐藏字段的值,或者使用JavaScript在客户端上更改隐藏字段的值。
使用jQuery的示例:http://jsfiddle.net/JGsQ5/
浏览器加载页面后,它将存储在DOM(http://en.wikipedia.org/wiki/Document_Object_Model)中,这是JavaScript操作的,并由浏览器用来构建HTTP请求,该请求将作为HTTP请求发送回服务器。回发。
答案 2 :(得分:2)
除了使用Firebug之类的调试工具之外,用户还可以通过其他交互(使用JavaScript)间接更改隐藏字段的值,从而对其进行更改。通常情况下,用户不会意识到他们正在做的技术细节(他们既不知道也不关心隐藏领域发生变化的事实)
其他工具(如Fiddler)可能会拦截Web请求,并在回发时将隐藏(或任何)字段的值更改为服务器。
答案 3 :(得分:1)
轻松,打开像FireBug
这样的程序并更改元素值。请记住,标记是客户端,因此服务器信任客户端发送回正确的数据 - 但是,这很容易被规避。
最好在会话中存储对应用程序安全性至关重要的数据,而数据仍保留在服务器端并与客户端绑定。 ASP.NET可以组成哈希,以防止未经授权修改字段,等等。