0

Railsアプリケーションで使用したい「名前空間」のカスタムタグ(radius gemで開発)がいくつかあります。xss攻撃を防ぐためにsanitize gemを使いたいのですが、sanitizeで名前空間を設定する方法が記載されていません。可能な方法はありますか?

4

2 に答える 2

1

サニタイズ gem は名前空間をサポートしていません。サニタイズのコードを簡単に見てみると、要素をクリーンアップする変換クラスも、実際に html を解析する方法も、Nokogiri (サニタイズの基礎となる xml パーサー) が名前空間を認識して処理できるようにするために必要な情報を提供しないため、サニタイズを変更せずにこれをサポートすることはできません。

サニタイズで接頭辞付きの名前空間なしでタグを見ることができるので、それらがすべて他のタグと衝突しないカスタム名を持っている場合、それらを指定できますが、現在書かれているサニタイズを使用すると、名前空間固有のタグをフィルタリングしません。

于 2011-04-20T10:22:51.013 に答える
0

私の知る限り、sanitize gemは、コントローラーのパラメーターからjavascriptとHTMLをフィルター処理するだけです。おそらく、私が最後に見たときから拡張されています。

いいえ、ほとんどのgemに名前空間を付けることはできません。モンキーパッチでラッパーを配置するためのハックがいくつかあります。必要に応じて、「ruby名前空間の衝突」をグーグルで検索すると、次のようなものが表示されます。Railsモデルの名前空間の衝突を解決する方法

于 2011-01-23T22:36:56.303 に答える