0

我有一个带有只读字段的表单,用于显示/提交到下一页。

但是,我注意到在 Chrome 中使用开发人员工具时,我能够向元素添加 id,使用 javascript 控制台选择该元素,并更改其 value。我提交了表单,你知道什么 - 下一页对其进行操作,就好像它是原始值一样。

现在,使用我正在构建的网站的人应该没有任何问题,但这对我来说似乎是一个巨大的安全漏洞。只读的目的不是保持不变吗?如果一个精明的用户改变它,那不是一个大问题吗?事实上,我什至不认为您可以在 chrome 中添加和更改属性。

请在下面发表您的想法,如果有解决方案,请告诉我(“禁用”文本字段,但设置禁用属性不会将数据发送到下一页)。

4

1 回答 1

2

永远不要相信来自网络表单的输入。

用户可以很容易地删除readonly属性并编辑值。该readonly属性只是在填写表单时帮助用户,因此当您的服务器实际上不允许更改时,他们不会编辑期望它更改的值。因此,请始终记住首先在您的服务器上对行为进行编码,并让 HTML 表单成为用户的有用指南,以使表单更易于填写(无需多次提交表单以获得相关的错误消息)。

为了克服这个问题,如果readonly您不想编辑某些内容,您可以将值存储在数据库中。此外,应始终检查(和清理)用户提供的值,因为再多的 JavaScript、HTML 或 CSS 都不会阻止知道自己在做什么的人添加新值或更改/删除现有值。

于 2012-04-26T13:54:27.293 回答