我的问题是关于从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中进行这种验证毫无意义。
我的逻辑:
由于这是一个静态信息,普通(好人)用户不会乱用它,因此无需检查它。
如果一个邪恶的用户想要弄乱我的代码,他可能会知道如何混合HTML代码而不是JS代码,所以再次 - 不需要客户端验证静态输入。
所以我是对的,或者应该总是在客户端有完整的验证幽灵。
PS:我只是要求客户端,我总是/以及所有用户输入的服务器端验证/答案 0 :(得分:3)
始终验证输入服务器端。
很好来验证JavaScript中的内容,因为您可以告诉用户提前输入不正确。
聪明的用户可以绕过您放置的任何JavaScript约束,因为您始终可以发出自己的请求。
从时间效率的角度来看。通过总是尝试提供有用的错误消息,花费大量时间来尝试帮助邪恶用户是不值得的。如果服务器认为输入无效,您可以使用"invalid input"
回复。如果您的JavaScript验证足够好,那么普通用户永远不会遇到该错误。