永井@知能.九工大です.

From: TADA Tadashi <sho / spc.gr.jp>
Subject: [ruby-dev:21663] Re: access ENV on $SAFE==4
Date: Tue, 21 Oct 2003 16:45:45 +0900
Message-ID: <20031021163902.74C9.SHO / spc.gr.jp>
> 環境変数は「開かれたインタフェース」(うまい言い方が見つからないけど、外
> 部から自由に設定可能という意図)なので、

であるならなおのこと,$SAFE>=4 で自由に読ませるのは危険な気がします.

> (2)にしても(3)にしても、不都合がたくさん出てきそうに思います。

いや,(2) についてはライブラリ側で明記してもらうだけのことなので
その手間以外は不都合は出ないのではないかと思います.

以前から $SAFE >= 4 では環境変数の設定はできませんから,
$SAFE >= 4 のスクリプトからの情報送り出しに環境変数を
使えないのは従来通りですよね.
情報の受け取りに必要な場合はライブラリでアクセス許可を
出すわけですからこれも問題はないはずです.

なお,ライブラリのロードは $SAFE == 0 で行われますから,
ライブラリの中でアクセス権を設定しておきさえすれば,
そのライブラリを使用する $SAFE >= 4 のスクリプトが
動作に支障を来たすことはないと考えます.

では,ライブラリで使用を想定していない環境変数に
$SAFE >= 4 のスクリプトがアクセスしていた場合ですが,
これは「危険なので使うことはできなくなりました」でも
仕方ないでしょう.

> 特に(3)はプラットフォームに依存した変数が
> 多いので、完璧を期すのは不可能では。

はい.ですので,「(3) は中途半端だから…」ってことです.

> いずれも、少なくともマイナーバージョンアップで実施するのは厳しいでしょう
> ね。個人的には何もしなくてもいいんじゃないかと思ってはいるんですが、実験
> 的に(2)の方向性を試すのはアリかなぁ。でも「何が必要か」判断できない場合
> もありそう…。

ん? ライブラリ自身は「何が必要か」というのはわかっているはずでは?
(2) というのは「ライブラリ毎に必要最低限を許可するようにしましょう」
ですよね.
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp