0

我的问题是关于从 html 表单接收的用户输入并且是静态的(通过“静态”-我的意思是来自选择选项、单选按钮、复选框等信息)。我是否应该进行客户端验证,因为我假设用户可以使用 firebug 之类的工具更改我的 html 代码。

例子:

我的代码:

<select>
<option>public</option>
<option style="display:none">private</option>
</select>

用户修改:

<select>
<option>public</option>
<option selected >private</option>
</select>

我应该在 JS 中验证此输入还是将其留给服务器端验证?我知道用户也可以操作 JS,所以我认为在 JS 中进行这种验证毫无意义。

我的逻辑:

  1. 由于这是一个静态信息,普通(好人)用户不会弄乱它,因此无需检查它。

  2. 如果一个邪恶的用户想要弄乱我的代码,他可能会知道如何混合 HTML 代码和 JS 代码,所以再一次 - 不需要对静态输入进行客户端验证。

我是对的还是应该始终在客户端拥有完整的验证幽灵。

PS:我只要求客户端,我总是/以及对所有用户输入的服务器端验证/

4

1 回答 1

4

始终验证您的输入服务器端。

用JavaScript 验证东西很好,因为您可以及早告诉用户输入不正确。

聪明的用户可以绕过您设置的任何 JavaScript 约束,因为您始终可以提出自己的请求。


从时间效率的角度来看。花很多时间试图通过总是试图给出有用的错误信息来帮助邪恶的用户是不值得的。如果服务器认为输入无效,您可以回复"invalid input". 如果您的 JavaScript 验证足够好,那么普通用户永远不会遇到该错误。

于 2013-06-21T16:57:31.003 回答