From: matz@... (Yukihiro Matsumoto) Date: 2003-03-25T12:22:56+09:00 Subject: [ruby-list:37413] Re: Secure 「ではない」 script の書き方 まつもと ゆきひろです In message "[ruby-list:37412] Re: Secure 「ではない」 script の書き方" on 03/03/25, Tanaka Akira writes: |> 後者は単なるチェック漏れですね。前者はtaintされたオブジェク |> トに対する操作が許される事から成功しているのですが、そもそも |> IOのオープンはレベル4では許されてはいけないですね。 | |なるほど。では、 | |% ruby -e 'lambda { $SAFE = 4; ARGV[0] << "xxx" }.call ; p ARGV' abc |["abcxxx"] | |というように、ARGV[0] を書き換えられるのはどうなんでしょう? 理由は同じ(taintされたオブジェクトに対する操作が許される)で す。この件に関してはARGVが指す文字列をfreezeすることで対応で きそうですが、もともとこのルールが妥当でないということを意味 しているような気もします。ちょっと考察が必要そうですね。 まつもと ゆきひろ /:|)