FreeStyleWiki

CSRF対策

このエントリーをはてなブックマークに追加

[セキュリティ]

CSRF対策

  • 要はフォームのPOST時にいたずらをされるのを防ぐ必要がある
  • ワンタイムトークンをフォームに配置して、それを受け取ったサーバがトークンを検証する

  PHPによる簡易な実装

  FreeStyleWikiのCSRF問題

実はこのFreeStyleWikiにもCSRF対策用の実装はない。2005年12月 5日にIPAから勧告されているが。

  • 上記については対策を入れた

https://github.com/hangingman/fswiki/pull/23

対応内容

  • FreeStyleWikiのPOST時にCSRFトークンのチェックを入れるようにした(コレ自体はRailsでもデフォルトである実装)
  • `Plack::Middleware::CSRFBlock`の機能を使った
    • Plackによるページ配信時は `<head><meta name="csrf-token" content="c9677a0040c32a67"/>...` のような形でCSRFトークンがメタタグに入る
    • POST時に`Plack::Middleware::CSRFBlock`が挿入したトークンを `SEC: c9677a0040c32a67` の形式でPOSTのパラメータに含ませることでverifyを行う