は、私は、次のコードを見てきました:それは、SQLインジェクションを許すことができなかったので、ここでYii execute()でSQLインジェクションを実行できますか?
$id = $_GET["user"];
$auth = $_GET["id"];
$sql = 'DELETE FROM categories where user_id = '.$id.' and category_id = '.$auth;
Yii::app()->db->createCommand($sql)->execute();
私は、このコードはOKではないことを言われてきました。
$ _GETが適切にフィルタリングされていないためですか?
Yii :: app() - > db-> createCommand($ sql) - > execute();それを避ける?
またはそこに到着したとき、はすでにwhere句に置かれているデータをチェックする必要がありますか?
で利用可能である、あなたのデータベーステーブル用のActiveRecordのモデルを持っていますか?そうでない場合は、どうしてですか? ActiveRecordを使用すると、クエリを自分で書く必要がないため、SQLインジェクションの問題全体を回避できます。 – Jon
クエリーやいくつかの追加オプションについてたくさんのラッパーを付けて読むのが簡単で、少なくともZendでそれらを見ていたのです。しかし、もちろん、好きな点として、私はより自然な感じでクエリを書く方が好きです。 – MEM
[Yiiアプリケーションの安全な使い方](http://www.yiiframework.com/wiki/275/how-to-write-secure-yii-applications/)に関するこのWiki記事を読むことをお勧めします。 –