【问题标题】:Does the Zebra_Database MySQL wrapper protect against SQL injection?Zebra_Database MySQL 包装器是否可以防止 SQL 注入?
【发布时间】:2026-02-11 19:25:01
【问题描述】:

我正在考虑使用一个名为 Zebra_Database 的 MySQL 包装器:

http://stefangabos.ro/php-libraries/zebra-database/

有人可以通过代码判断这是否可以防止 SQL 注入,还是我应该采取进一步措施来保护自己?

谢谢!!

【问题讨论】:

  • 它鼓励使用准备好的语句,这些语句不易受到 sql 注入的影响。来自首页“它鼓励开发人员编写可维护的代码,并通过鼓励使用准备好的语句来提供更好的默认安全层,其中参数会自动转义。”
  • 所以基本上这只是意味着用 mysqli_real_escape_string 包装每个输入?
  • 不,这意味着您应该使用准备好的语句,这些语句一开始就不容易受到SQL注入的影响。
  • @benjamin-gruenbaum 谢谢。如果您将其添加为答案,我会将其标记为答案。

标签: mysql database sql-injection


【解决方案1】:

它鼓励使用准备好的语句 - 与 mysqli 使用相同的受限版本 - 因此,它没有提供 100% 的保护。
它使用某种查询构建器 - 因此,它使您的 SQL 过于不灵活(并且 - 因此 - 再次不安全)。

我个人不会使用它,但首先它比“用 mysqli_real_escape_string 包装每个输入”要好。

【讨论】:

    【解决方案2】:

    它鼓励使用不易受 SQL 注入影响的预准备语句。

    来自 Zebra_Database 的首页:

    它鼓励开发人员编写可维护的代码,并通过鼓励使用准备好的语句来提供更好的默认安全层,其中参数会自动转义。

    这意味着您应该使用准备好的语句,这些语句一开始就不容易受到 SQL 注入的影响。请参阅this question 了解预准备语句的用法。

    【讨论】: