2012-04-29 12 views
2

私はsymfony2バージョン2.0.5を付属のDoctrine ORMソリューションで使用しています。私は環境をdevからprodに変更して以来、データベースに固執すると、すべてのフォーム入力がエスケープされます。今、私はこれがSQLインジェクションを防ぐための正しい動作だと知っていますが、データをフェッチすると、文字列はエスケープされません。私はJSON文字列をデータベースに直接保存するので、これは大きな問題を引き起こしています。 また、このデータを更新するたびに、文字列は繰り返しエスケープされます。 私の質問ですが、特定のフィールドのエスケープを無効にすることはできますか?または、DBからフェッチしたときに値をエスケープできますか? そしてなぜこれは巧妙な環境でのみ起こっているのですか?これは意図されていますか?Symfony2 - 入力フィールドのDoctrineオートエスケープ

Davidさん、よろしくお願いします。

答えて

1

これはおそらく、PHPの設定に起因するもので、SymfonyやDoctrineではありません。 php.iniでは、magic_quotes_で始まるすべてのオプションを見つけて、Offに設定します。サーバーを再起動することを忘れないでください。

+0

ご返信ありがとうございます。私は魔法の引用符を読んでphp.iniをチェックしましたが、それらはすべてオフになっています。私は今、symfonyや教義の問題ではないと信じています。他の可能性はありますか?たぶん間違った文字エンコーディングですか?実際には、アプリケーションを別のサーバーに移動しました。しかし、データベース構成は同じです。 – marmeblade

+0

私はちょうど投稿データを見ました。そしてそこで逃げることが起こり、それは魔法の引用符でなければならないと私に伝えます。しかし、彼らは活性化されていません。魔法の引用符を除いて、これらのことをする別のメカニックがいますか? – marmeblade

+0

Okマジッククォートが有効になっているかどうかをテストしました。助けてくれてありがとう、エルヌール。今私は彼らが有効になっている場所を見つける必要があります。 php.iniでは有効になっていません。別の可能性はありますか? – marmeblade

関連する問題