当javascript被禁用时,保护表单的最佳方法是依赖javascript验证

The best way to secure form depending on javascript validation when javascript disabled

本文关键字:javascript 最佳 方法 依赖 验证 表单 保护      更新时间:2023-09-26

所以到目前为止,我已经准备好了我的客户端验证,但是如果javascript禁用了呢?我在想什么是最好的方法来确保我得到的数据是有效的:

  1. 对于开始,我也可以在服务器端测试数据,但是所有javascript验证的意义是什么。
  2. HTML 5获得了一些验证功能,但浏览器支持有限。
  3. 我正在考虑Ajax的一些东西,但不能把我的手指Ajax解决方案。

所以我将非常感谢得到一些建议的解决方案当javascript关闭

  1. 永远不要相信用户输入。
  2. 永远不要相信用户输入。
  3. 永远不要相信用户输入。
  4. 永远不要相信javascript验证,很容易被篡改,因为它在浏览器上执行。考虑它是用户输入的一部分。
  5. 永远不要相信用户输入。

服务器端验证总是强制性的,无论是否有javascript验证。除此之外,Ajax只是对URL的动态javascript调用的一个时髦的名称。没有Javascript,没有Ajax。

除了HTML5验证(必须不能依赖,因为它可以像Javascript验证一样容易地被绕过)之外,我不能想到其他任何东西。

即使打开了JavaScript,仍然完全有可能操纵表单以在服务器端发布您可能不期望的信息。服务器端验证总是用于数据存储和操作。

是的,您应该始终同时拥有验证客户端(javascript)和服务器端(您选择的语言中的业务对象)。

你绝对不能相信所有的用户使用/离开客户端。

客户端验证是为了帮助用户保持理智,这样他们就不会犯错误,再试一次,再试一次。同时也减少了服务器/对象的流量。每个人都喜欢这样。

但是你需要让你的服务器端做最后的验证,如果你是认真的验证。如果你只能选择其中一个(如果客户端禁用了js…),你选择服务器端。

如果您想要稍微减少多余的验证,可以让表单ajax post/call到一个验证器,该验证器调用服务器上的BUSINESS LOGIC规则,但是当最终post发生时,它需要在提交之前再次运行BUSINESS LOGIC规则。

请记住这句话:

JavaScript验证对用户有利,但服务器验证对安全有利

还有这个

用户数据总是邪恶的

换句话说,总是执行服务器验证,因为在一天结束时您正在处理可能已被篡改的用户数据。