優しいモダンな WAF の作り方
Angelos ネタ。
以前 WAF を作ったときにすごくお世話になったソースコード。
最小構成要素
Engine -> Dispatcher -> ComponentManager
3つつくると WAF っぽい。
要素は揃っているので、2,3時間でカンタンな WAF なら作れます。
優しいプラグインの作り方
どこでも自由に Hook してね!
はあまりよくない。
それぞれ限定して、限定された範囲内では自由にどうぞ。
という形の方が望ましい。
プラグインの実現方法
- Life Cycle への Hook
- Class::Trigger
- Mouse の Role + Method Modifier
- メソッドはやす系
- MouseのRole
- Exporter
- 多重継承
Plugin を Role の概念にし、with して使う。
Mouse の befor / after を使ってHookする。
Hookポイントは大文字で!という規約だけをきめておく。
んなときはこんなセットを使ってね!
というデフォルトセットを用意してあげると、TIPSの変な乱立とかがなくていい感じだよ。