CSRFとは
WEBエンジニアとして仕事する上でセキュリティ対策は非常に重要である。
今回はCSRF(クロスサイトリクエストフォージェリ)について簡単にまとめる。
webアプリケーション内の脆弱性、もしくは脆弱性を利用した攻撃方法のことである。
掲示板やお問い合わせフォームなどを処理するアプリケーションが本来拒否すべき他サイトからのリクエストを受信して処理してしまう。
どのように攻撃されるか
・攻撃者は攻撃用Webページを準備し、ユーザがアクセスするよう誘導する
・ユーザが攻撃用Webページにアクセスすると、攻撃用Webページ内にあらかじめ用意されていた不正なリクエストが攻撃対象サーバに送られる
・攻撃対象サーバ上のWebアプリケーションは不正なリクエストを処理し、ユーザが意図していない処理が行われる
どのような被害があるか
・いたずら的書き込み、不正サイトへの誘導、犯罪予告といった掲示板やアンケートフォームへの不正な書き込み
・不正な書き込みを大量に行うことによるDoS攻撃
なりすましによる犯行を行える。
※DoS攻撃とは
Denial of Service attackの略で、攻撃対象であるサーバーやサイトに大量に情報を送りつける攻撃のこと。
railsでの対策
railsには最初からApplicationControllerに対策が用意されています。
protect_from_forgery with: :exception この部分
Railsが生成するすべてのフォームやAjaxリクエストで自動的にセキュリティトークンを含めるものです。もしセキュリティトークンが想定されている値と一致しなければ、例外(エラー)が投げられます。
参考記事
クロスサイトリクエストフォージェリ(CSRF)
DoS攻撃・DDoS攻撃とは?攻撃の目的や種類、事例、対策方法を解説
「Ruby on RailsのCSRF対策」