0

wysihtml5 エディターを使用して、ユーザーが ASP.NET MVC4 ディスカッション フォーラムにメッセージを投稿できるようにしています。これらのメッセージは mssql データベースに格納され、Razor 構文で画面に表示されます。

@Html.Raw(post.Html)

これらのユーザーは認証されていますが、次のようなインジェクション攻撃に対して脆弱にならないようにしたいと考えています。

ユーザー投稿:

<script>alert('Hacked:' + secretInformation)</script>

MVC レンダリング アラート ボックス:

Hacked: ::secret info::

コントローラーで設定することにより、htmlをdbに保存できるようにしました。

[ValidateInput(false)]

クリーンな HTML コードのみをレンダリングし、攻撃に対して脆弱ではないことを確認するには、どのような手順を実行すればよいですか?

4

2 に答える 2

1

これは以前の質問で回答されていますが、ここにいくつかの情報があります:

AntiXss.HtmlEncode と AntiXss.GetSafeHtmlFragment の比較

html をレンダリングする必要があるため、サニツァー コードが必要になりますが、もちろんセキュリティ上の理由から、スクリプト タグなどをマークアップに表示する必要はありません。AntiXss.GetSafeHtmlFragmentデータベースにhtmlを永続化する前にも使用します。これは、かみそりを使用するときにあなたを救うのに役立ちます@Html.Raw

于 2013-05-30T16:03:58.163 に答える