如何防止我的表单的只读字段数据?

Posted

技术标签:

【中文标题】如何防止我的表单的只读字段数据?【英文标题】:How to prevent readonly fields data of my form? 【发布时间】:2020-03-22 07:04:27 【问题描述】:

我的应用程序是基于 Spring MVC 框架的。为我的表单使用 JSP。一些用户正在通过按 F12 或开发人员工具来修改表单的只读字段。如何阻止用户修改表单的只读字段?实际上,有很多表单,并且通过在运行时从数据库中搜索那些在我的表单中只读的字段来进行服务器端验证,这对性能和一项艰巨的任务都不利。我最近发现了这个问题,我想了解如何阻止用户这样做。谢谢。

【问题讨论】:

您无法阻止用户更改表单的属性。您能做的最好的事情就是不要考虑存储在您的只读字段中的值。 和 nicolas 说的一样,顺便说一下,如果用户没有被授权,你可以在服务器上使用类似领域的安全性来防止用户使用提交方法。 如果用户更改我的只读字段的数据,服务器将如何检查或如何阻止用户使用提交按钮?我正在使用 jboss 作为服务器。谢谢。 【参考方案1】:

不要依赖客户。

也就是说,客户端的安全不是安全。

您在客户端(也称为 htmljavascript 等)上进行的任何安全检查或做出的假设都是无关紧要的,需要在服务器上执行。 当用户提交表单时,简单地禁止用户无权使用的任何值。

    用户可以编辑 HTML 并添加自定义输入 在客户端,他可以编辑提交请求 他可以更改现有非只读输入的值

【讨论】:

以上是关于如何防止我的表单的只读字段数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS Access 2013 中创建只读表?

jquery 使字段不可编辑,没有只读或禁用

Django 表单中的只读字段

如何防止在 ASP.NET Core 的 Razor 视图 HTML 中禁用或只读输入字段的模型绑定?

只读表单字段格式

Symfony 表单只读字段