CFWheels ORM 和 SQL 注入

CFWheels ORM and SQL Injection

我是 Coldfusion 的新手,我以前的背景是 PHP 使用 codeIgniter。我目前正在为一个项目使用 CFWheels。

我有一个插入语句

n_building = model("buildings").new();
n_building.name = name;
n_building.save();

并阅读声明

room = model("rooms").findOne(where="name='#name#' AND b_id='#b_id#'");

是上面的最佳实践还是能从安全的角度写的更好

问题是使用 ORM 会自动保护我的查询免受 SQL 注入或任何其他形式的注入或安全风险吗?我是否必须使用其他东西,如果是的话,我该如何修改上述语句?

据我所知,cfwheels ORM 将参数化由 ORM 构建的查询。 它将在语句中插入 <cfqueryparam>。 但是您可以启用调试并轻松查看发送到数据库的查询。

CfWheels 默认情况下对所有内容都使用 cfqueryparam,除非您使用参数 parameterize 并将其设置为 false。所以你不必担心 Sql 注入。

阅读 findAll method description 中的参数化参数。

按照 John Whish 的建议,使用动态查找器可以使您的代码变得更好。