クックブックから読みました(4.2節)
CakePHPは、生のSQLの代わりにCakePHPのORMメソッド(find()やsave()など)と適切な配列表記(つまり、array('field' => $ value))を使用する場合、SQLインジェクションから既に保護されています。XSSに対するサニタイズの場合、一般に、生のHTMLを変更せずにデータベースに保存し、出力/表示時にサニタイズする方が適切です。
したがって、find()やsave()などのメソッドに制限する場合、SQLに対してユーザーデータを手動でサニタイズする必要はありませんか?特に、$ this->dataからではなく$_POSTから直接データを取得する場合、これは本当ですか?言い換えると、$ this-> dataを使用してfind()クエリを実行するとします。次に、CakePHPは、配列$ this-> dataを書き込むとき、またはfind()のクエリを書き込むときに、SQLに対してサニタイズしますか?
2番目の質問は、表示するデータをサニタイズすることです。Sanitize :: htmlはべき等ですか?それで、beforeSave()メソッドでそれを使用できますか、それとも、再度適用されて新しい結果が得られるため、2回目に保存すると壊れますか?