5

Propel ORM のドキュメントには、fromArray や fromJSON などの関数を使用した適切なインポート/エクスポート機能が記載されており、次のようなことが可能になります。

$foo = new Widget();
$foo->fromArray($_POST);
$foo->save(); /* Aaand you're done! */

...しかし、この方法で fromArray を使用することが安全であると想定されているかどうか、つまり fromArray が信頼できない入力を処理できるかどうかについて、ドキュメントには言及されていません。私の推測では、それで問題ないと思います。デフォルトのセッターはインジェクション耐性があり、取引全体が PDO に基づいていますが、確認したいと思います。

4

2 に答える 2

6

Propel はクエリに PDO を使用するだけでなく、PDO を介してプリペアド ステートメントも利用します。これは、SQL インジェクション攻撃を緩和する (およびパフォーマンスを向上させる) という点で非常に優れています。

PDO を使用するだけでは、SQL インジェクションに対する保護が保証されないことに注意してください。常にPrepared Statementsを使用してください。

あなたの質問への答えとして、はい、Propel は PDO の機能をフルに活用して SQL インジェクションから保護します。

于 2012-06-28T13:40:57.967 に答える
2

Adnan が言ったように Propel は安全ですが、メソッドを使用することに決めた場合は、グローバル変数を直接fromArray()渡さないでください。$_POSTそうしないと、大量割り当て攻撃への扉が開きます。

常に入力データをチェックする必要があります。つまり、ユーザーを信頼してはいけません。

于 2012-06-28T17:55:49.240 に答える