Version 2, last updated by Hisashi Horikawa at July 28, 2010 00:18 UTC
Wafuは、ごくごく小さなWebアプリケーションフレームワークです。
特徴
- 1. CGIで動作できる
- Webサーバが動いていれば、root権限なしにアプリケーションを配備できます。共用サーバなど制限の厳しい環境で動かすために開発しました。
CGIを前提として、Webブラウザからのリクエストの度にアプリケーションプロセスが起動されても、まともな時間で動くようにしています。ただし、スループットは重視していません。
アプリケーションを常駐できる環境であれば、普通にRuby on Railsなどを使ったほうがいいと思います。
- 2. pathベースのルーティング
- URLのパターンにマッチングするものをコントローラに配分します。次のように書きます。
Application.routes do # クラス名を省略すると、(先頭大文字 + "Controller") とみなす resource "users" resource "spaces", :falldown => (lambda { match "/:space_id", :filters => ["LoginRequired"] do resource 'cashes' resource 'invoices' resource 'partners' resource 'gl', :controller => 'general_ledger' resource 'reports' end }) - 3. セキュリティ
- 次の攻撃への対策を最初から組み込んでいます。
- session fixation ... URLのクエリパラメータからセッションIDを取得しない、セッションIDの適切な取り扱い
- CSRF ... フォームに(セッションIDではない)トークンを埋め込む
- クロスサイトスクリプティング (XSS) ... HTML生成時に自動的にエスケープ
SQLインジェクションについては、Wafuの範囲外ですが、ActiveRecordなどを利用すれば大丈夫です。