サイト攻撃 Script Insertion @PHP技術
こんばんはー
C言語もひと段落し、PHP技術へ移っていきます。
ここからは、PHPサイバーテロの技法という本を使って実際に試していきながら学習していきます。
では、1章は概要でした。
→穴が無いWebサイトを目指すことが重要。とのことです。
では、2章のクラッキングの実体験から実際に攻撃してみます。
ここで攻撃対象となるサイトは、本に書かれているサイトからダウンロードした掲示板スクリプトです。
- 2-2Script Insertion攻撃側
このサイトにScript Insertionをします。
具体的には、Script InsertionHTMLやjsなどを入力します。
そうすることで意図としていない挙動をさせてしまいます。
例えば、
<script>location.href="http://yahoo.co.jp";</script>
を入力して掲示板に投稿すると。。。
掲示板を表示しようとすると、勝手に http://yahoo.co.jp へ飛ばされてしまいます。
Script Insertionの危険な点ですが、javascriptが実行されるので、何をされるかわからない危険性があるということでしょうか。
例を参考にすると飛び先に仕掛けがされている(ワームなどが仕込まれている)サイトだと、ユーザーが危険にさらされます。
- 2-2Script Insertion防御側
では、このScript Insertion攻撃に対して防御をしてみます。
防御方法はサニタイズと呼ばれる方法。今回はHTML出力に対してなので、HTML出力サニタイズと表記です。
具体的にはPHPの htmlspecialchars()関数を使用します。
これは、タグなどの特殊文字をブラウザ出力用の<などに変換することで無害化する関数です。
コードは以下のようになります。
//echo '題名:'.$row['title'].'<br />' ;//↓へ替える echo '題名:'.htmlspecialchars($row['title'],ENT_QUOTES).'<br />' ;//HTML出力サニタイズ
これで、Script Insertion攻撃は防がれました。