従来型脆弱性対応(エスケープ処理等)目次はじめにエスケープ処理DOM生成URLはじめにクロスサイトスクリプティング(XSS)は主にJavaScriptを利用して行われる。HTML5、JavaScript及びその関連技術の普及に伴って脆弱性と対応策は広がる一方だが、まずは従来からの対策エスケープ処理SQLインジェクションと同様。攻撃者はテキストボックス等の入力欄にJavaScriptコードを挿入してくる。住所:という風に入力して攻撃してくる。※サイトによってはこのJavaScriptが動いてしまう。例:<script>JavaScriptコード</script>具体的には入力された「<」「>」等の文字を強制的に「&lt;」「&gt;」等の文字コードに置換する処理を「エスケープ処理」という。※サーバー側で処理する際には「<」「>」⇒「&lt;」「&gt;」に変換されてJavaScriptは動作しない。そもそもクライアントサイドでこの文字の入力を制限する様な処理を施すとなお良い。「<」「>」の他にも、「"」「'」「&」等もhtmlにおいては特別な意味を持つ為、それぞれ以下の様にエスケープ処理を行う。&amp;DOM生成ユーザーが入力した値等を画面に表示したりする為に動的にhtmlを生成する際、やり方(文字列によるhtml指定)によっては脆弱性となる。/>")によりTextBoxが動的(サイト表示時)に生成される。(2)その際、変数:normalの内容をTextBoxに表示する(value=normal)</script>2JavaScriptインジェクション成功例マウスオーバーイベントでalert(1)が実行される。document.createElement('input');element.setAttribute('type','text');element.setAttribute('value',XSS);myForm.appendChild(element);</script>※setAttribute、appendChildを使用する事でJavaScriptインジェクションを無効化している。">本来、URLが設定される~の部分にJavaScriptのコードが埋め込まれると、URLにジャンプせずに埋め込まれたコードが実行されてしまう為、URLの動的生成時はhttp,https限定とする。