是否在 codeigniter 中逃避了针对 sql 注入的足够保护
Is escaping enough protection against sql injection in codeigniter
我读到转义输入不足以防止 sql 注入。
然后,我看到 codeigniter 不使用准备好的语句。
它在执行查询时使用escape
和bind
(仍然只是转义)。
这是否足够保护?
如果不是,我应该避免查询 Class 并手动使用准备好的 PDO 查询吗?
是的,您的假设是正确的,即避免内置查询 class,并将 PDO 与准备好的查询一起使用。
不要使用没有准备好的东西,除非你正在制作一个插件,那么为了未来的用户,你可能会考虑使用内置函数来让他们更容易调试,但仍然考虑使用更安全的预处理语句支持方式。
您真的不想成为负责网站弱点的插件作者。
从我所看到的一切来看,PDO 和准备好的查询是现在要追求的东西。在这里看到很多 PHP 的帖子,大多数评论都在告诉人们切换到更安全的方式,以 PDO 的方式访问和插入数据到您的数据库中。它的文档非常详尽,一旦掌握了它的基础知识,就很容易看出如何进一步使用它。 TL:DR 逃脱 = 不好。 PDO = 好
PDO 文档也在这里,为您提供了一个庞大的“操作方法”知识库,这些知识库非常容易理解且写得很好PDO Manual
我读到转义输入不足以防止 sql 注入。
然后,我看到 codeigniter 不使用准备好的语句。
它在执行查询时使用escape
和bind
(仍然只是转义)。
这是否足够保护?
如果不是,我应该避免查询 Class 并手动使用准备好的 PDO 查询吗?
是的,您的假设是正确的,即避免内置查询 class,并将 PDO 与准备好的查询一起使用。
不要使用没有准备好的东西,除非你正在制作一个插件,那么为了未来的用户,你可能会考虑使用内置函数来让他们更容易调试,但仍然考虑使用更安全的预处理语句支持方式。
您真的不想成为负责网站弱点的插件作者。
从我所看到的一切来看,PDO 和准备好的查询是现在要追求的东西。在这里看到很多 PHP 的帖子,大多数评论都在告诉人们切换到更安全的方式,以 PDO 的方式访问和插入数据到您的数据库中。它的文档非常详尽,一旦掌握了它的基础知识,就很容易看出如何进一步使用它。 TL:DR 逃脱 = 不好。 PDO = 好
PDO 文档也在这里,为您提供了一个庞大的“操作方法”知识库,这些知识库非常容易理解且写得很好PDO Manual