0

我有以下html代码:

<input type="text" value="test value" readonly/>

此输入元素是不可编辑的,因为它具有readonly属性。但是仍然可以通过使用 Firefox 中的 Firebug 工具检查元素来使该字段可编辑。有没有办法使这个属性不可编辑?

4

1 回答 1

2

这实在是不可能的。有人会找到解决方法,因为您的代码是在客户端上执行的。即使您保护了客户端(Web 浏览器),仍然有一种方法可以使用Fiddler之类的代理服务器回发和篡改只读字段。你有两个选择。

1)从字段列表中删除该项目并使其成为文本元素。如果您不需要 POST 中的信息,这只是一个有效的解决方案。

2)保持项目只读(或隐藏)但检查内容在服务器端没有改变。无论如何,这是一种最佳安全实践。即使您在客户端上进行验证,您也应该始终在服务器上进行验证。原因是人们可以解决客户端验证问题。根据您的后端语言,服务器端验证有不同的方法。在这种情况下,如果您使用的是 PHP 或 ASP.NET,那么您可以在提供页面之前将该值粘贴到会话变量中,并在提交表单时根据会话值检查 POSTED 值。

于 2013-07-17T15:09:35.860 回答