【问题标题】:which side should I validate the form data, client side or server side?我应该验证表单数据,客户端还是服务器端?
【发布时间】:2013-01-30 13:45:44
【问题描述】:

起初,我打算通过javascript或jquery在客户端完成验证,但后来我意识到一些恶意用户可能会跳过我的jsp页面,将未经验证的数据发送到我的servlet .我的服务器端是使用 Spring+SpringMVC+mybatis 构建的,有什么方法可以让我在客户端保持验证,同时保证我的服务器安全(spring security 有帮助吗?)。非常感谢!

【问题讨论】:

    标签: spring security validation


    【解决方案1】:

    您应该始终在服务器端进行验证。

    客户端验证只是为了方便您(诚实的)用户,并不会增加您系统的安全性。

    必须始终进行服务器端验证,没有什么可以使您的服务器自动安全(从什么安全?必须决定哪些输入对您的应用程序、数据库、用户、如何使用等)。

    在服务器端重用客户端验证代码的唯一简单方法是使用 Node.js 或其他服务器端 JavaScript,例如 Rhino

    【讨论】:

    • 有没有关于如何使用Node.js在服务器端运行javascript,尤其是结合spring框架的文章?谢谢!!
    • 网络编程的基本原则:假设所有请求都是邪恶的,并相应地检查它们。
    • @Judking 你可能会发现 Rhino 更容易与 Spring 集成,因为它也是像 Node.js 一样的服务器端 JavaScript 引擎,但它本身是用 Java 编写的。请参阅Rhino in SpringHow to run JavaScript from Javagoogle for: java spring rhino
    【解决方案2】:

    很遗憾,您需要验证服务器端以确保其安全。

    您在客户端执行的任何操作都可能被恶意用户撤消。通常,客户端验证用于更快地向用户反馈并防止您的服务器获得过多的点击。所以它仍然是非常有益的,但你将需要两者。

    【讨论】:

      猜你喜欢
      • 2011-04-30
      • 2017-09-22
      • 2011-12-06
      • 2011-10-17
      • 2019-09-15
      • 2019-11-20
      • 2012-09-22
      • 2012-01-12
      相关资源
      最近更新 更多