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

mysql_real_escape_字符串是否足以反SQL注入?

  •  7
  • Jichao  · 技术社区  · 14 年前

    在PHP手册中,有一个注释:

    注意:如果此功能不用于 转义数据,查询易受攻击 到SQL注入攻击。

    这足以反sql注入吗?如果不是,你能举个例子和一个很好的反sql注入的解决方案吗?

    3 回复  |  直到 14 年前
        1
  •  7
  •   deceze    12 年前

    mysql_real_escape_string 通常足以避免SQL注入。这确实取决于它是否没有bug,也就是说,有一个小的未知机会 脆弱(但这还没有在现实世界中表现出来)。在概念级别上完全排除SQL注入的更好的替代方案是 prepared statements . 这两种方法完全取决于你是否正确地应用它们;也就是说,如果你只是把它搞砸了,它们都不会保护你。

        2
  •  0
  •   mcbeav    14 年前

    据我所知,这是避免SQL注入攻击的可靠方法。

        3
  •  0
  •   Rotimi    7 年前

    最好的解决办法是 PDO .

    如果你用传统的 mysql_query 然后通过 mysql_real_escape_string() 够了。