代码之家  ›  专栏  ›  技术社区  ›  alaboudi

addslashes()和prepared语句是否冗余[重复]

  •  -2
  • alaboudi  · 技术社区  · 10 年前

    插入准备好的语句时需要转义字符吗?对我来说,准备好的语句能逃过代码吗?

    1 回复  |  直到 10 年前
        1
  •  1
  •   Kevin Kopf    10 年前

    询问SO社区比使用谷歌更容易。。。

    PHP Manual:

    转义和SQL注入

    绑定的变量与查询分开发送到服务器,因此不能干扰查询。解析语句模板后,服务器在执行时直接使用这些值。绑定参数不需要转义,因为它们从不直接替换到查询字符串中。必须向服务器提供绑定变量类型的提示,以创建适当的转换。有关详细信息,请参见mysqli_stmt_bind_param()函数。

    这种分离有时被认为是防止SQL注入的唯一安全特性,但如果所有值的格式都正确,那么使用未准备好的语句也可以实现同样的安全性。应该注意的是,正确的格式与转义不同,它比简单的转义涉及更多的逻辑。因此,对于数据库安全的这一要素,准备语句只是一种更方便、更不容易出错的方法。

    …假设你有 mysqli公司 当然

    推荐文章