3

Railsで出力HTMLをサニタイズするための最良のソリューションは何ですか(XSS攻撃を回避するため)?

white_list プラグインまたは Sanitize Helper http://api.rubyonrails.com/classes/ActionView/Helpers/SanitizeHelper.htmlのサニタイズ メソッドの 2 つのオプションがあります。私にとっては、今日まで white_list プラグインの方がうまく機能し、以前は Sanitize に非常にバグがありましたが、コアの一部として、おそらく開発中であり、しばらくの間サポートされるでしょう.

4

3 に答える 3

3

http://code.google.com/p/xssterminate/をお勧めします。

于 2008-10-20T01:55:11.117 に答える
1

私はhヘルパーメソッドがここで機能すると思います:

<%= h @user.profile %>

これにより山かっこがエスケープされるため、埋め込まれたJavaScriptが無効になります。もちろん、これにより、ユーザーが使用する可能性のあるフォーマットも排​​除されます。

フォーマットが必要な場合は、マークダウンをご覧ください。

于 2008-10-26T09:24:46.223 に答える
0

個人的には、どの Web アプリでも HTML エントリを受け入れることは小さな決断ではないと思います。ホワイト/ブラックリストのタグを好きなだけテストできますが、正しいネストをテストしていない限り、誰かが一連の終了タグを入力する可能性があります。

</td></tr></span></div>

そして本当にあなたのレイアウトを台無しにします。

私は通常、マークアップを入力するために Textile のようなものを人々に提供します。なぜなら、私は HTML の構文解析よりもビジネス ロジックの作業に時間を費やしたいからです。

もちろん、このテキスト エントリがアプリにとってより基本的なものである場合 (たとえば、stackoverflow の場合) は、独自のハンド ローリングにもっと注意を払う必要があります。

于 2008-10-27T08:37:24.307 に答える