2012-05-08 31 views
2

asp.netでクロスサイトスクリプティングを防止するために使用できる手法は何ですか? xssから保護されたWebサイトを実現するために使用できる、準備が整っていない実装はありますか?Asp.NETでXSSを防止する方法

答えて

2

この目的のために社内で長年開発していましたが、最終的にマイクロソフトはライブラリを提供しました。私たちは今、私たちのライブラリを完全にこのライブラリに置き換えました。

string sanitizedString = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(string myStringToBeChecked); 

この方法の唯一の問題は、それは行末文字で区切られている複数の空白をトリムということである。これは次のように簡単に使用することができます。そのようなことが起こらないようにするには、文字列を行末の文字(\ r \ n)に対して最初に分割し、それらの前後の空白の数を計算し、サニタイザを適用し、空白を追加して連結します。

それ以外は、Microsoftライブラリが正常に動作します。

+0

感謝:) – User05

+1

は残念ながら、AntiXSS.GetSafeHtmlFragment()は最新バージョン(V 4.2.1)で、古いバージョンでは脆弱と役に立たないようになって - それは今可能ほぼすべてのHTMLタグを取り除き、となりました使用できない:( – BornToCode

1

マイクロソフトのクロスサイトスクリプティングライブラリは良いスタートです。 XSSを防ぐための便利なヘルパーメソッドがいくつかあります。これは今や大きな部分の一部ですMicrosoft Web Protection Library

0

以下の方法でクロスサイトスクリプティング攻撃を防御する。それが働いた

1. Use HtmlEncoding while saving the input content that is received from web application controls usch as textbox etc. 
2. Use InnerText instead of InnerHtml while displaying data on the page. 
3. Do the input sanitization before saving the data into database. 
関連する問題