クロスサイトスクリプティング
こんにちは、一生と言います。
はじめに
現在では、たくさんのWebサイト・Webアプリが存在します。
その中には、
- コメントを入れる
- 掲示板のように使用する
ものもたくさんあります。
これらのに共通するのは、
フォームに書いたものを表示する
ということです。
その入力フォームを使用したWebサイト・Webアプリを開発する・使用する際に気をつけないといけないことがたくさんあります。
その一つが
クロスサイトスクリプティング
です。
XCCとも書かれています。
今回はそんな、
クロスサイトスクリプティングについて
紹介させていただきます。
この記事では主に、
を参考にさせていただきました。
コメントはそのまま表示するだけだから、
セキュリティに関しては大丈夫だろう
と思ってはいけません。
一緒に何を気をつけるのか学びましょう。
それではよろしくお願いします。
こんな人にオススメ!!
- コメントを使用するWebアプリを開発している人
- 会社でセキュリティ関係の任された人
- いろんなWebサイトの掲示板を使用している人
書いたものを表示するってどういうこと?
まず先にWebサイトやWebアプリがどのようにできているかについて学びましょう。
すごく簡単に歪度紹介させていただきます。
Webサイトなどは、
html・css・JavaScriptなどを使用して作られたページ
です。
主に、
html
表示するもの
文字や画像など
css
デザイン
大きさや色など
JavaScript
ページの動き
ボタン押した時の動作など
を指定します。
実際には、PHPなどいろいろな言語がありますが、
主にこの3つがメインです。
そして入力フォームに書かれたものを下などに表示するとは、
ボタンを押した時に掲示板などに書いたものをhtmlに入れる
ということです。
その内容がhtmlに入るということです。
どうやって悪さをするの?
今の流れを見て、
どういうふうに表示されてても関係ないんじゃない?
書いちゃいけないことを書かなきゃ問題ないよ
と思いますよね。
しかし、もう一度流れを見てください。
普段なら、
フォームにはただ自分が表示させたい文など
を入れます。
つまり、
その内容がhtmlに入ってもその文のまま
ということです。
書いた内容がそのまま表示されます。
しかし、フォームにhtml文を書いたらどうなるでしょうか?
書いた内容をhtmlに入れることで表示するため、
そのhtml文がhtmlとして読み込まれてしまう
ことになります。
htmlにhtmlの内容を入れたら、
当然そのままhtmlとして読み取ります。
そしてその場合厄介なことに、
htmlでWebページの動きをつけることもできる
のです。
htmlにJavaScriptも書けます。
そして動きをつけられるということは、
他人のサイトを使用して悪さができる
ということです。
これが、
クロスサイトスクリプティング
です。
どんな危険があるの?
クロスサイトスクリプティングで危険なことは、
- 他のページへのリンクをつけられる
- その人に装うことができる
などがあります。
他のページへのリンクをつけられる
Webページにはたくさんのリンクがあります。
クリックだけでそのページに移動できるものですね。
これは、htmlでそのテキストにリンク先を登録しているためです。
そして入力フォームでは、
htmlを含んだ投稿
出典:「図解まるわかりセキュリティのしくみ」より
ができてしまいます。
ただ、フォームにhtmlのような書き方をするだけです。
つまり、
普通のテキストに悪意のあるサイトのリンクをつけることもできる
のです。
その人に装うことができる
フォームに動きをつけることで、
他の人のidやパスワードを知る
ことができてしまうこともあります。
つまり、
ユーザのなりすまし
出典:「サイバー攻撃 ネット世界の裏側で起きていること」より
ができるということです。
普段、よく使うサイトなどでは、最初からログインできている状態のことありますよね。
これは、
履歴や状態を一時的に保存しているから
です。
「さっき大丈夫だったからOKです」
という感じですね。
つまり、一時的ではありますが、idやパスワードが保存されているのです。
クロスサイトスクリプティングを使用することで、
一度の通信でその人のidやパスワードを知ることもできてしまう
のです。
どんな対策ができる?
サーバー側でのクロスサイトスクリプティングの対策としてよく上がるのは、
入力されたテキストをすべてそのまま出力しないようにする
ということです。
クロスサイトスクリプティングができてしまういちばんの原因は、
入力されたテキストをそのままhtmlに入れて出力していること
です。
そのままhtmlに入れているから、
htmlを入力したらそのままhtmlとして読み込んでしまいます。
そのため、
- 特殊な記号は使えなくする
- 出力する前に問題ないか確認するように設定する
などhtmlのように書かれた場合出力しないようにしましょう。
また、ユーザー側としては、
- 登録する前にそのサイトに問題ないか検索する
- あまり知られていないサイトは使用しない
ようにしましょう。
みんなが使っているのなら
脆弱性はないだろうと思いますよね。
終わりに
今回は、
クロスサイトスクリプティングについて
についての本を紹介させていただきました。
クロスサイトスクリプティングとは、入力フォームなどに対する悪さの一つです。
今では、たくさんのWebサイトがコメントする機能があります。
入力フォームがあります。
しかしサイトによっては、
そのフォームからいたづらができるようになってしまっているかもしれない
ということです。
その一つがクロスサイトスクリプティングです。
そして厄介なことは、
利用者が被害に遭っていることに気づかない
出典:「図解まるわかりセキュリティのしくみ」より
こともあります。
誰かが自分になりすましても、
大事になるまで気づけないですよね。
そのため、あなたがユーザー側なら
- 登録する前にそのサイトに問題ないか検索する
- あまり知られていないサイトは使用しない
などできる限りの注意を払うようにしましょう。
また、サーバー側なら、
- 特殊な記号は使えなくする
- 出力する前に問題ないか確認するように設定する
ようにしましょう。
大事なのは、
サーバー側でhtmlのように入力できなくすること
です。
そして、クロスサイトスクリプティングは、
脆弱性のあるWebサイトを直接攻撃するのではなく、
そのようなWebサイトを悪用して
「利用者を攻撃する」こと
出典:「図解まるわかりセキュリティのしくみ」より
です。
つまりサーバー側は、
ちゃんと対策しないと自分が悪いことに加担してしまっていることもある
ということです。
自分たちを守るためにも
ちゃんと対策しましょう。
また、今回この記事によって、
もう怖くてどのサイトもコメントしたくないよ!
と感じた人もいると思います。
大体の有名サイトや長く続いているサイトは対策をしてくれていると思います。
当然、100%とは言えませんが。
そのため、たくさんの人が使っているサイトなどでは怖がりすぎないようにしましょう。
でないと、TwitterやYouTubeだって使えなくなってしますからね。
危険なのは、
セキュリティもされてないかもしれないサイトの使用
です。
これが自分からできる対策になります。
これらの本では、他にいろいろなセキュリティのことが書かれています。
この記事を読んで興味を持った方は、ぜひ読んでみてください。
奥付
本は、人の知識の宝庫です。
一冊の本を全て取り入れるのは大変です。
そのため、何か一つでも自分に取り入れてみましょう。
それだけで、自分の成長が見え、とても楽しいですよ。
最後まで読んでいただき、ありがとうございました。
コメント