1

広告 html のデータベースがあり、そのうちのいくつかには Javascript 関数が含まれています。Railsで特定のモデルの特定の属性のjavascript:タグを許可する方法はありますか?

さらに明確にするために、編集フォームで html を表示できますが、送信しようとすると、ブラウザー (Firefox) は接続がリセットされたと表示します。IEでもエラーが出ます。HTML を送信できる唯一の方法は、タグから javascript: を削除することです。

私の推測では、これは Javascript インジェクションを許可しないための Rails によるセキュリティ対策ですが、これらの広告の HTML を制御することはできず、多くの広告には JavaScript が含まれています。

私の推測が本当に正しい場合、この 1 つのモデルのこの 1 つの属性のセキュリティをオーバーライドする方法はありますか? それとも、私はここで目標から外れていますか?

Ruby 1.8.7でRails 2.3.4を使用しています

4

2 に答える 2

0

コードを見なくても、あなたが使用していると思いますsanitize。サニタイズする代わりに、JavaScript をエスケープして送信および保存し、実際に使用する必要があるときにエスケープを解除することを検討してください。

于 2010-02-10T05:27:49.100 に答える
0

今はレールを使用したことはありませんが、考え方は同じである必要があります.javascriptを文字列として保存し、表示するときにデータをエスケープしないでください。これを行うためのより良い方法は、JavaScript にリンクしてから、関数への呼び出しをデータベースに保存することです。

于 2010-02-08T22:13:33.067 に答える