From: matz@... (Yukihiro Matsumoto) Date: 2003-10-25T11:48:27+09:00 Subject: [ruby-dev:21715] Re: access ENV on $SAFE==4 まつもと ゆきひろです In message "[ruby-dev:21713] Re: access ENV on $SAFE==4" on 03/10/25, Hidetoshi NAGAI writes: |> |----< $LOAD_PATH ($:, $-I) >------------------------ |> | $SAFE >= 4 でのアクセスが禁止される. |> | |> | ...としていますが,ENV の許可レベルに連動させるという選択も |> | ありという気がします. |> |---------------------------------------------------- |> ま、これは良いとして。 | |「ENV の許可レベルに連動させる」という点はどう思われますか? ENVの許可レベルの必要性を感じてないので不要ではないかと思っ てます。 |古い記述をコピーしてから修正してたんで,修正忘れです. |allow/deny が効果を持つのは,ENV.secure_level=(level) で |指定したレベル以上 ($SAFE >= level) です. じゃ、そうだとして、secure_levelの「嬉しさ」ってなんなんでしょ う? $SAFEの各レベルの役割は固定で変更できないのに、ENVに関 してだけレベル設定可能にする意図が理解できてません。 |正直なところ,レベル指定は「ついで」のことでした. |[ruby-dev:21696] で中田さんが考えていたものに |レベル設定が含まれていたので,それを反映しています. じゃあ、なくてもいいかなあ。 |名前については確かに "inseure_*" の方が良さそうです. |だとすると, |---------------------------------------------------- | ENV.insecure_level | ENV.insecure_level=(level) | | Module#insecure_const(const_sym, level = 4) | Module#insecure_const? | Module#insecure_constants |---------------------------------------------------- |といったところでしょうか. 先にも述べたようにENVの許可レベルの必要性を感じてないのです が、仮に導入するとしても、こちらはinsecure_levelではおかしい のではないかと思います。いや、secure_levelなら「level+1から 禁止」にするべきなのか。 やっぱり許可レベルは要らないんじゃない? まつもと ゆきひろ /:|)