Zebra_Database MySQL 包装器是不是可以防止 SQL 注入?
Posted
技术标签:
【中文标题】Zebra_Database MySQL 包装器是不是可以防止 SQL 注入?【英文标题】:Does the Zebra_Database MySQL wrapper protect against SQL injection?Zebra_Database MySQL 包装器是否可以防止 SQL 注入? 【发布时间】:2013-03-20 12:41:16 【问题描述】:我正在考虑使用一个名为 Zebra_Database 的 mysql 包装器:
http://stefangabos.ro/php-libraries/zebra-database/
有人可以通过代码判断这是否可以防止 SQL 注入,还是我应该采取进一步措施来保护自己?
谢谢!!
【问题讨论】:
它鼓励使用准备好的语句,这些语句不易受到 sql 注入的影响。来自首页“它鼓励开发人员编写可维护的代码,并通过鼓励使用准备好的语句来提供更好的默认安全层,其中参数会自动转义。” 所以基本上这只是意味着用 mysqli_real_escape_string 包装每个输入? 不,这意味着您应该使用准备好的语句,这些语句一开始就不容易受到SQL注入的影响。 @benjamin-gruenbaum 谢谢。如果您将其添加为答案,我会将其标记为答案。 【参考方案1】:它鼓励使用准备好的语句 - 与 mysqli 使用相同的受限版本 - 因此,它没有提供 100% 的保护。 它使用某种查询构建器 - 因此,它使您的 SQL 过于不灵活(并且 - 因此 - 再次不安全)。
我个人不会使用它,但首先它比“用 mysqli_real_escape_string 包装每个输入”要好。
【讨论】:
【参考方案2】:它鼓励使用不易受 SQL 注入影响的预准备语句。
来自 Zebra_Database 的首页:
它鼓励开发人员编写可维护的代码,并通过鼓励使用准备好的语句来提供更好的默认安全层,其中参数会自动转义。
这意味着您应该使用准备好的语句,这些语句一开始就不容易受到 SQL 注入的影响。请参阅this question 了解预准备语句的用法。
【讨论】:
以上是关于Zebra_Database MySQL 包装器是不是可以防止 SQL 注入?的主要内容,如果未能解决你的问题,请参考以下文章