セキュリティについて
今日はセキュリティについての学び
よく聞く言葉の脆弱性について
これはアプリケーションの弱点を作り出す仕様上の問題
自分なりの言葉にすると
作り方が悪いので(欠陥品)、弱点があってユーザーの情報盗めるよ。
ってことかなと。
セキュリティがないと色々な攻撃方法でユーザーに不利益を与える欠陥webページ(アプリケーション)になると。
その色々な攻撃方法が
XSS・・・JavaScriptを用いた攻撃方法
というのがあり、それも二種類もある。
反射型XSS・・・悪意のあるURLをクリックさせることにより、脆弱性のあるwebアプ
リケーションに引き込み、例えば個人データを抜き取るイベント発
火をさせるといったようなもの
格納型XSS・・・脆弱性のある投稿サイトなどで、悪意のあるスクリプトを投稿として
埋め込み、ユーザーがそのサイトに訪れると、イベント発火し、個人
データが抜き取られるといったようなもの。
他には
セッションハイジャック・・・セッションIDを盗むまたは乗っ取る攻撃
や
CSRF・・・webアプリケーションに不正なリクエストを行う攻撃
や
SQLインジェクション・・・外部からの入力により、アプリケーションが想定しない
SQL文を実行することにより、認証突破し情報を盗む攻撃
がある。
対策として
XSS対策・・・文字参照というHTMLの文字を特殊文字として変換すること。
セッションハイジャック対策・・・フレームワークを用いる。
XSSを防ぐことや安全なネットワークの利用。
セッションIDの固定化を防ぐように認証を都度変更
CSRF対策・・・トークンの埋め込みやパスワードの再入力をさせる。
SQLインジェクション対策・・・SQL文中で意味を持つ特殊文字をエスケープしたり、
プレースホルダーを用いること。
が挙げられるそうです。
半分ぐらいは分かりそうですが、実際どうすればできるのか?
Ruby on railsであれば<%= %>でXSSへの対策はできているそうで、それの配置ミスがないかなどは実際、やりながら覚えるしかないのかなと思いました。
今回はこういう攻撃や防ぐやり方があるんだな〜と思うぐらいの理解度にはなりますが、知っておくことがまずは大事かと感じました。
最後にセキュリティはどれか一つの対策ができていれば良いというわけではなく、総合的に対策ができている必要があるということです。