Propel ORM文档提到了一个简洁的导入/导出功能,使用fromArray和fromJSON等函数,它应该允许这样的事情:
$foo = new Widget();
$foo->fromArray($_POST);
$foo->save(); /* Aaand you're done! */
。但是文档没有提到以这种方式使用 fromArray 是否应该是安全的,即 fromArray 是否可以处理不受信任的输入。我的猜测是没关系 - 默认的二传手是防注入的,整个交易基于 PDO - 但我想确定。
Propel不仅使用PDO进行查询,还通过PDO使用预准备语句,这在缓解SQL注入攻击(和性能增强)方面非常好。
请注意,仅使用 PDO 并不能保证对 SQL 注入的任何保护,请始终使用预准备语句。
因此,作为对您的问题的答案,是的,Propel充分利用了PDO的能力来防止SQL注入。
正如
Adnan所说,Propel是安全的,但是当你决定使用fromArray()
方法时,永远不要直接传递$_POST
全局变量。否则,您将打开大规模分配攻击的大门。
始终必须检查输入数据,换句话说,您永远不应该信任您的用户。