29日目 セキュリティについて知ろう
セキュリティで大事なのは、余計な情報は保持しないこと。そして表に出さないこと。
情報を持たなければ漏れることはないのです。
「あとは公開前にセキュリティに関して注意しておくことを説明しておこう。
Webサービスを公開するということは全世界の人から見られる可能性があるので、掲載する情報としない情報はきちんと区別しなければならない。
色々なところで情報流出が起こっているけど、起きる仕組みは知っておこう。
よく脆弱性と呼ばれるのは、XSSやCSRF、SQLインジェクションと呼ばれるもの。
その中でも特に気を付けないといけないことはXSS。
XSSは攻撃対象のウェブサイトに、ユーザーが情報を掲載できるようなウェブアプリケーションが掲載されている場合に、悪意のある第三者がそこへ罠を仕掛け、サイト訪問者の個人情報を盗むなどの被害をもたらす攻撃のこと。ユーザーが投稿できるサービスでは一番起こる可能性が高い。
これが起こるのはスクリプトが埋め込まれたリンクのURLを投稿して、そのスクリプトが有効になる場合。ユーザーが投稿した文字列の中でJavaScriptが実行できる場合はNG。
XSSの被害はYouTubeでもTwitterでも過去に起きたことがある。
これの対策としては、利用しているウェブサーバーやアプリケーションを最新の状態に保つこと、ユーザーが投稿できる入力値を制限すること、サニタイジング(特定の文字を別の文字へ書き換える)することが挙げられる。
基本的に有名でよく知られているフレームワークを使っている場合は、フレームワーク側で対策をしてくれているので、自分から設定を変えなければそれほど問題ではない。
多くの人が使うものは十分に検証されていることが多い。この辺りもフレームワークを使う利点。自分で作ったものだとどうしても抜けがありがち。
また、外部のライブライやマイナーなもの、古くなってアップデートされていないものを使う場合も注意が必要。
あとは、余計な情報は持たないことも大事だね。知らないことは漏らしようがない。ユーザー登録する際に必要のない情報は求めない。
有料のサービスにする場合は取り扱いにさらに注意が必要になるね」
「そういうのを聞くと怖いね」
「起きるパターンと対策は大体決まってるからそれを学んで新しく機能を追加する場合に気を付ける感じだね」
ユーザー登録してもらう際に、必要な情報は絞っておきましょう。複垢対策といって多くの個人情報を登録させるとそれだけでリスクになります。
セキュリティ関連は脆弱性診断などのサービスもあるのでリリース前に受けておいてもいいかもしれません。




