前田です。

At Wed, 06 Dec 2000 13:14:23 +0900,
tnaka / brain-tokyo.com wrote:
> mod_perlではPerlHandlerという指定で、要求したURLに関係なく特定のスクリプ
> トに処理をさせる機能があるようですが、これと似た機能をmod_rubyに追加しま
> した。
> 
> パッチを添付しますので、本流に取り入れていただけたら嬉しいです。何か問題
> があればご指摘下さい。

おお、すばらしい。
同じような仕組は欲しいなと思ってたんですが、なるほど実行するスク
リプトをすげかえるだけで、パラメータの受け渡しは環境変数使えばよ
いわけですね。
取り込みます。

> ○ safe_levelについて
> 
> 現状のmod_rubyでは、safe_levelを1にしてスクリプトを実行しますが、上記の
> ような用途を考えると、safe_levelを0で実行したいケースもあります。それで、
> RubySafeLevelというディレクティブも追加しました。

実はCVSではRubySafeLevelというディレクティブを既に追加しています。
ほとんど同じ実装ですけど、スクリプトをロードする部分だけ$SAFEを設
定するようにしているので、$SAFE==4の時もとりあえず動くようになっ
ています。

> とすると、mod_ruby配下のスクリプトは全てsafe_level=0(通常のrubyと同じ)で、
> 実行されます。つまり、handlerから他のスクリプトをloadすることなどができ
> るようになります。当然ですが、危険性も高いので慎重に使用してください。

これはloadするスクリプト名をuntaintしてやれば$SAFE==1でもできませ
ん?

fname = ENV["SCRIPT_FILENAME"]
fname.untaint
load(fname)

のような感じ。

-- 
前田 修吾