0

ASP.NET MVCアプリケーションがあり、テキスト入力にCKEditorを使用しています。入力検証をオフにして、CKEditorから作成されたHTMLをコントローラーアクションに渡すことができるようにしました。次に、入力したHTMLをWebページに表示しています。

CKEditorの特定のボタンしか有効にしていませんが、明らかに誰かが好きなテキストを送信できます。ユーザーが入力した後、ページにHTMLを表示できるようにしたい。入力を検証しながら、エディターで有効になっているいくつかのことを表示するにはどうすればよいですか?

したがって、基本的には、太字、斜体、リスト、リンクなどのいくつかの重要なものを除いて、すべてをサニタイズしたいと思います。これはサーバー側で行う必要があります。

4

3 に答える 3

0

同様の質問からここに私の完全な答えを参照してください:

エンジェルブラケットをエンコードされたエンジェルブラケットに置き換えると、ほとんどの問題が解決することがわかりました

于 2009-10-05T20:31:55.260 に答える
0

AntiXSSはどうですか?

于 2009-10-05T18:05:51.267 に答える
0

許可したいhtmlタグの種類の「ホワイトリスト」を作成できます。全体をHTMLエンコードすることから始めることができます。次に、次のような一連の「許可された」シーケンスを置き換えます。

"&lt;strong&gt;" and "&lt;/strong&gt;" back to "<strong>" and "</strong>"
"&lt;em&gt;" and "&lt;/em&gt;" back to "<em>" and "</em>"
"&lt;li&gt;" and "&lt;/li&gt;" back to ... etc. etc.

Aタグのようなものについては、正規表現に頼ることができます(href属性も許可する必要があるため)。それでもXSSには注意が必要です。他の誰かがすでにAntiXSSを推奨しています。

Aタグを置き換えるためのサンプル正規表現:

&lt;a href="([^"]+)"&gt;

次に、として置き換えます

<a href="$1">

幸運を!

于 2009-10-06T15:22:39.897 に答える