高張情報技術士事務所

  トップ    業務実績  個人情報保護 情報セキュリティ パソコン道場 Office覚書

情報セキュリティ


■ クロスサイトスクリプティングとは (2011.08.12)


 クロスサイトスクリプティング(Cross Site Scripting)とは、Webサイトの訪問者が入力した情報を、そのまま画面に表示する掲示板などのWebプログラムに問題があり、悪意のあるスクリプト(簡易プログラム)を、不特定多数の訪問者のブラウザに送って、実行させる脆弱性のことです。

 悪意を持った訪問者が入力したスクリプトを含む文章を、別の訪問者が閲覧することにより、スクリプトが実行されることで、パソコンに記憶されているcookie情報が盗まれたり、悪意のあるサイトに誘導されるなどの被害をもたらします。

 クロスサイトスクリプティング対策としては、入力された情報をWebプログラムがチェックすることや、特殊記号(<, >, &, ", など)を無効化することが考えられます。

 特殊記号の無効化とは、特殊記号を別のコードに変換することです。無効化されると、特殊記号としてブラウザに表示されても、特殊記号としてブラウザに認識されません。

特殊記号 => 変換されたコード
  <  =>  &lt;
  >  =>  &gt;
  &  =>  &amp;
  "  =>  &quot;

<スクリプトの例>
入力文の中に、ボタンをクリックすると他のサイトを表示するスクリプトを埋め込んでみました。

入力文
安全なテストです。こちらのボタンクリックしてください。=>
<SCRIPT language="JavaScript">
<!--
function TEST(){
 window.open('http://www.takahari.com/security/s01.html', '_blank')
}
//-->
</SCRIPT>
<input type="button" value="テスト" onclick="TEST()">

ブラウザ画面表示
安全なテストです。こちらのボタンクリックしてください。=>


特殊記号が無効化された入力文
 (Webプログラムで、以下のように無効化されます。それをブラウザで表示すると、上記入力文のようになります。)

安全なテストです。こちらのボタンクリックしてください。=&gt;
&lt;SCRIPT language=&quot;JavaScript&quot;&gt;
&lt;!--
function TEST(){
 window.open('http://www.takahari.com/security/s01.html', '_blank')
}
//--&gt;
&lt;/SCRIPT&gt;
&lt;input type=&quot;button&quot; value=&quot;テスト&quot; onclick=&quot;TEST()&quot;&gt;