我读到转义输入不足以防止SQL注入。
然后,我看到codeigniter没有使用准备好的语句。
在执行查询时,它使用escape
和bind
(仍然只是转义)。
这足够保护吗?
如果没有,我应该避免使用“查询类”并手动使用准备好的PDO查询吗?
答案 0 :(得分:1)
从我所看到的一切来看,PDO和准备好的查询是现在要追求的东西。在此处看到大量PHP帖子,大多数评论都告诉人们要以PDO方式转向使用更安全的方式来访问数据并将数据插入到数据库中。它的文档记录非常详尽,一旦您掌握了它的基础知识,就很容易看到如何进一步使用它。 TL:DR转义=不良。 PDO =好
PDO文档也在这里,可为您提供有关“操作方法”的大量知识,这些知识非常容易理解并且编写得PDO Manual
答案 1 :(得分:0)
是的,您的假设是对的,可以避免使用内置查询类,并在准备好的查询中使用PDO。
不要使用未准备好的东西,除非您要制作插件,否则为了将来的用户,您可以考虑使用内置函数以使其更容易调试,但仍然可以考虑使用更安全的方法准备好的语句支持的方式。
您真的不想成为负责网站漏洞的插件作者。