【问题标题】:Is server side validation required, when data is posted through ajax?通过 ajax 发布数据时是否需要服务器端验证?
【发布时间】:2013-04-12 09:47:11
【问题描述】:

在我的项目中,我通过 POSTING 到一个 php 文件来存储 FORM 数据。我在buttonclick上通过ajax发送数据并且我正在做客户端验证,所以无论如何我不能在没有javascript的情况下进行数据库插入,那么我需要服务器端验证吗?

【问题讨论】:

    标签: ajax jquery jquery-validate validation


    【解决方案1】:

    当然。客户端运行的环境完全不在您的控制范围内,您应该认为它充满敌意并可能受到威胁。

    您的问题还包含错误的假设。你说,“当数据通过 ajax 发布时”。但是你怎么知道呢?当您看到一些数据通过 Internet 到达您的服务器时,您绝对无法判断该数据来自什么软件。这就是想要发布它的方式,但除非您控制网络上的每台机器,否则这正是您想要的方式。显然,攻击者(甚至是实验者)不会尊重你的意愿。

    【讨论】:

    • 但是如果javascript被禁用,则无法插入数据
    • @AmitParmar:您不能假设计算机和软件的功能超出您的控制范围。有人可以向您的服务器提交他们想要的任何内容。您必须验证服务器中的所有内容,并认为您无法控制的所有内容都可能具有恶意。 (SQL 注入攻击是最明显的此类攻击。)
    • 嗯...我现在明白了..感谢您的指导,非常有用。
    猜你喜欢
    • 1970-01-01
    • 2019-10-10
    • 1970-01-01
    • 2013-11-11
    • 2013-09-01
    • 1970-01-01
    相关资源
    最近更新 更多