From: matz@... (Yukihiro Matsumoto) Date: 2003-03-25T12:10:23+09:00 Subject: [ruby-list:37411] Re: Secure 「ではない」 script の書き方 まつもと ゆきひろです In message "[ruby-list:37408] Re: Secure 「ではない」 script の書き方" on 03/03/24, Tanaka Akira writes: |taint とか $SAFE っていまひとつよくわかってないんですが、$SAFE == 4 で |も | |% ruby -e 'p lambda { $SAFE = 4; IO.new(0).gets }.call' |abc |"abc\n" | |というように STDIN から入力できたり、 | |% ruby -e 'p lambda { $SAFE = 4; Dir.pwd }.call' |"/tmp" | |というように Dir.pwd が動いたりするのは意図されているのでしょうか。 後者は単なるチェック漏れですね。前者はtaintされたオブジェク トに対する操作が許される事から成功しているのですが、そもそも IOのオープンはレベル4では許されてはいけないですね。 まつもと ゆきひろ /:|)