Cakephp PHP WEB開発

[Cakephp4]ORMを利用してもバインドされないパターン

※本サイトはPR表記を含みます。

CakephpのORMを利用する利点として、自動でバインドをしてくれることでSQLインジェクション攻撃を未然に防いでくれるというものがあります。
ですが、ORMの書き方によってはバインドされない場合もあるので気を付けたい所。

例えば、

$this->find()
    ->where(["town_name LIKE '%{$name}%'"]);

実行はできますが、こういう場合はバインドされないようです。

 

バインドされる書き方としては、

$this->find()
    ->where(['town_name LIKE' => "%{$name}%"]);

という感じで、「キー => 値」形式で記述することでバインドしてくれるようになります

 

レビューする際に、見落とさないようにチェックしたいものです。

また、実装時もORMではできるだけ「キー => 値」形式で書くことを通常とした方が良いですね。

 

-Cakephp, PHP, WEB開発
-