2009-10-27 6 views
26

System.Web.HttpUtility.HtmlEncodeメソッドを使用せずに一部のテキストをhtmlエンコードする方法はありますか? .NET 3.5 Client Profileを使用してデスクトップアプリケーションを展開したいのですが、System.Web.dllは.NET 3.5 Client Profileの一部ではないため、回避策を見つける必要があります。C#のHtmlEncode

+6

20の質問、ゼロが受け入れ? –

+5

申し訳ありません。私は質問に答えることをあまり重視しませんでした。今すぐチェックしてください:)。学んだ教訓。 – Cornel

答えて

14

Rick Strahlは、.NETのエンコード方法の問題や不一致のために、独自のエンコード方法を採用しました。彼の投稿はHtml and Uri String Encoding without System.Webでチェックしてください。

更新:他の回答で提供されているリンクを確認した後、マイクロソフトが提供するAntiXSSライブラリはこの問題の理想的なソリューションのようです。彼らは、CodeplexでAntiXSS 4.3のソースを入手しました。http://antixss.codeplex.com/

AntiXSSライブラリには、HTML、URL、JavaScript、およびXMLをエンコードするための便利な方法が含まれています。これは安全なホワイトリストモデルに基づいているため、仕様に許可されていないものは禁止されています。

2014年6月のリリースノートによれば、これは過度に攻撃的であるというユーザーコミュニティからの否定的なフィードバックのため、サニタイザを含む最後のリリースです。だからあなたが欲しいサニタイザであれば、AntiSamyを見るか、HTML agility packで自分自身を構築する必要があります。

+2

AntiXCSSのレビューは圧倒的に否定的です:http://wpl.codeplex.com/releases/view/80289#ReviewsAnchorそしてマイクロソフトのダウンロードリンクは壊れています。 – jasonjonesutah

+0

4.3 AntiXSSリリースに関するコメントを追加し、壊れたリンクを削除するように私の答えを更新しました。 System.Net.WebUtility.HtmlEncodeメソッドは、最近のバージョンの.NETを使用している場合には、@ Joel Fillmoreと合意します。 – dthrasher

1

thisを含めることはできますか?代わりのEncodeメソッドがあります。

1

AntiXSSをご覧ください。独自のエンコーディングメカニズムを持ち、フレームワークのHtmlEncodeを置き換えるものです。

50

私はAntiXSSライブラリのファンでもありますが、.net v4には、System.dllでエンコードするための新しいユーティリティクラスが含まれています。したがって、.net v4に移行するオプションがある場合は、クライアントプロファイルを使用できます。

System.Net.WebUtility.HtmlEncode

関連する問題