HTML表单中是否存在客户端验证静态信息的问题?

时间:2013-06-21 16:52:50

标签: javascript security validation

我的问题是关于从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代码,所以再次 - 不需要客户端验证静态输入。

  3. 所以我是对的,或者应该总是在客户端有完整的验证幽灵。

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

1 个答案:

答案 0 :(得分:3)

始终验证输入服务器端。

很好来验证JavaScript中的内容,因为您可以告诉用户提前输入不正确。

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


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