我有一个带有只读字段的表单,用于显示/提交到下一页。
但是,我注意到在Chrome中使用开发者工具,我能够为元素添加ID,使用javascript控制台选择该元素,并更改其值。我提交了表格,你知道什么 - 下一页就像它是原始价值一样。
现在,使用我正在建设的网站的人们应该没有任何问题,但对我来说这似乎是一个巨大的安全漏洞。只读是否保持不变?如果一个精明的用户改变它,这不是一个大问题吗?事实上,我甚至认为你不能在chrome中添加和更改属性。
请在下面发表您的想法,并告诉我是否有解决方案(“已禁用”文本字段,但设置已禁用的属性不会将数据发送到下一页)。
答案 0 :(得分:2)
从不信任来自网络表单的输入。
用户可以轻松删除readonly
属性并编辑值。 readonly
属性只是在填写表单时帮助用户的内容,因此当您的服务器实际上不允许更改时,他们不会编辑期望更改的值改变。因此,请始终记住首先对服务器上的行为进行编码,并让HTML表单成为用户使用表格更容易填写的有用指南(无需多次提交表单以获取相关的错误消息)。
要解决此问题,如果某些内容为readonly
且您不希望对其进行编辑,则可以将该值存储在数据库中。此外,用户提供的值应始终进行检查(并进行消毒),因为任何数量的JavaScript,HTML或CSS都不会阻止有人知道他们正在做什么来添加新的或更改/删除现有价值观。