0

ユーザーが互いにメッセージを送信できるメッセージングシステムを作成しました。メッセージの添付ファイルとしてファイルを送信することもできます(単純な電子メールシステムのようなものです)。これにより、ユーザーは HTML 文字を送信でき、ブラウザによってレンダリングされます。

<b>Hello</b>

Helloとしてレンダリングされます

正常に動作していますが、ユーザーが入力すると1つの問題に直面しています

<iframe src="anywebsite"><iframe>

また、ブラウザによってレンダリングされます。

Asp.net MVC3を使用している通常のテキストとして表示される特定の文字のみをブラウザでレンダリングできるようにするにはどうすればよいですか

私のモデル クラスでは
[AllowHtml]、HTML 文字を許可する属性を追加しました

4

1 に答える 1

2

AntiXssライブラリを使用できます:

例えば:

@Html.Raw(Sanitizer.GetSafeHtmlFragment("<b>Hello</b>"))
@Html.Raw(Sanitizer.GetSafeHtmlFragment("<iframe src=\"anywebsite\"><iframe>"))

前者はHelloテキストを太字でレンダリングしますが、後者は安全とは見なされないため何もレンダリングしません。

AntiSamyプロジェクトをチェックアウトすることもできます。

于 2012-04-06T07:47:08.120 に答える