0

MVC ビューにテキストボックスがあり、ユーザーは HTML タグを入力できますが、タグはごくわずかです (B、I、U、A など)。このために、POST アクションの ValidateInput 属性を False に設定して、ユーザーが HTML タグを入力できるようにしました。しかし今、ユーザーが (INPUT、SCRIPT などの) 他の HTML タグを入力することを制限したいと考えています。つまり、許可したいもの以外は何でも。

1つの方法は正規表現を使用することだと思いますが、これに適した正規表現を見つけることができません。

これを達成する方法のアイデアはありますか? これに関するヘルプは大歓迎です。

感謝と敬意

4

1 に答える 1

1

それは危険です、男。ユーザーは、データのエンコードなど、いくつかのトリックを使用して不要なタグを挿入する可能性があります。コードに「危険な」タグを入力するためにユーザーが採用できる可能性のあるすべての方法を考えようとしても、ユーザーは追加のタグを見つけるでしょう。

したがって、問題に対する何らかの実績のある解決策を探すようにしてください。Google などの HTML サニタイザーをASP.NET MVC sanitize html input探すと、いくつかの解決策が見つかります。AntiXSS ライブラリは良い解決策になる可能性があります。現在はMicrosoft Web protection Libraryと呼ばれています。NuGet パッケージとしてソリューションに含めることができます。

Install-Package AntiXSS

この記事を読んで、問題とその解決策をより深く理解することをお勧めします。

豊富な HTML 入力のための .NET HTML サニテーション

AniXSSこの記事では、長所、短所、およびそのすべてのしくみについての完全な説明とともに、制限の少ない解決策を見つけることができます。コメント内の参照をお見逃しなく。

于 2014-06-30T17:04:58.243 に答える