1

初めてデータベースにhtmlを挿入するので、適切で安全なものにするためのアドバイスが必要です。
私はプロパティを持つクラスを持っています:

[AllowHtml] public property Description {get;set}

ビューには、ユーザーがデータを入力するtinyMCE (テキスト領域) があります。
後でそのhtmlを表示するときは、次を使用します。

@Html.Raw(Model.Description)

サイトへの攻撃を防ぐために何か他のことをすべきかわかりません。
入力しようとしました:

<script>alert('attack');</script>

しかし、それをデータベースに保存し、後で通常のテキストとして表示しても何も起こりません。
また、ユーザーがいくつかのタグを閉じたままにしておくと、何らかの形でレイアウトを壊すことができるのではないかと思います。
このようなシナリオに対処する際の賢明な手順は何ですか?

4

2 に答える 2

1

Windows Protection Libraryから Microsoft AntiXSS を使用できます。

TinyMCE、AntiXSS、MVC3、GetSafeHtmlFragment

乾杯。

于 2012-12-06T11:24:54.793 に答える
1

データベースに書き込む前に html をエンコードする必要があります。データベースを見ると、次のように表示されるはずです (または、少なくとも安全な場合はそうすべきです)。

&lt;script&gt;alert(&#39;attack&#39;);&lt;/script&gt;

これが html raw によってページに書き込まれると、送信されたときと同じように画面に表示されますが、ページを調べると、同じことが表示されます。

実際、ASP.Net を使用すると、サイトが悪用される可能性があるコードを作成することが非常に困難になるため、通常は問題ありません。特に他の人をメンタリングする場合は、知っておくとよいことなので、このトピックについてさらに読む価値があります。

いくつかのリンク:

Javascript および XSS 攻撃の防止

http://msdn.microsoft.com/en-us/library/ff649310.aspx

于 2012-12-06T11:13:17.100 に答える