クロスサイト・スクリプティング【XSS】

ハッカーの思考
100サイトに1つでも、1000サイトに1つでも、
とある攻撃方法が有効であればハッキング側からは大成功。
オレオレ詐欺が1/1000の成功率だとしても、
低リスク高リターンである事からなくならない様に。
別に失敗しても何らかのリスクがある訳ではない。
1/1000を求めてひたすら探し続けるのみ(機械が)。

クロスサイト・スクリプティング【XSS】はサイトの入力欄(テキストボックス、テキストエリア等)に、
JavaScript等を悪意を持って入力する攻撃方法。
ハッカーがJavaScriptによって他ページへ移動させる事が多い為この名前で言われる。
JavaScriptの多機能性により多くの被害が考えられる。
(1)他ページ移動
(2)Cookie盗聴
※Cookieを読まれる事により、Cookie認証サイトへの認証する権利も盗まれる。
(3)内容書き換え
※内容を書き換えられるという事はJavaScriptコードを埋め込み放題、何でもやりたい放題になる。
パスワード入力欄の内容を攻撃者サーバーへ転送する等。
別名:JavaScriptインジェクション
※インジェクション=コード挿入

インジェクション攻撃には
JavaScriptインジェクション
SQLインジェクション
等がある。

本来の使い方
 ID
 パスワード
プログラム内部処理
SELECT * FROM UserTable WHERE id='TestUser' AND pass='TestPass'
id='TestUser'でかつpass='TestPass'のレコードがある場合だけ認証が成功する。
つまりIDとパスワードを知っていないとログインできない。

SQLインジェクション攻撃例
 ID
 パスワード

プログラム内部処理
SELECT * FROM UserTable WHERE id='' OR 'A' = 'A' AND pass='' OR 'A' = 'A'
ID、パスワード共に'A'='A'であればOKとしているのでこれで通ってしまう。
つまりIDとパスワードを知らなくてもログインできる。

対策
(1)半角英数字以外の入力を許可しない
(2)エスケープ
「'」の文字をプログラムによって「'」に変換する。
等が代表的