ただただしです。

Hidetoshi NAGAI <nagai / ai.kyutech.ac.jp> wrote:
> (1) アクセス可能なものをあらかじめ指定しておく.
>       ライブラリで必要とされる最低限に絞れる代りに,必要な物が増える
>       度に対応しなければならないのが問題.ライブラリの問題に core が
>       引き摺られる恐れが大きい.
>
> (2) $SAFE < 4 において指定された情報にのみアクセスが許可される.
>       最も妥当な線か? ただしライブラリ側の対応が必要となるため,マイ
>       ナーバージョンアップのレベルで導入するには大きすぎる変更かも.
>
> (3) マシン環境に関する情報を含むものをリストアップしてそれらをつぶし
>     た上で,ENV.keys の実行を禁止する.
>       ライブラリ側の対応が不要であるので導入は容易.ただし,危険な情
>       報をつぶしきれているかの不安を消せないのが問題.もしかすると,
>       こちらが把握していないアプリケーションの環境変数をスキャンされ
>       て,そこから探りを入れられてしまうかも.
>
>多分 (1) は無茶なので,私としては (2) が望ましいと思うのですが,
>とりあえず (3) とした上で将来の (2) を予告し,1.9 などで移行と
>いう戦略もありでしょう.
>もちろん,「(3) は中途半端だから,次のメジャーバージョンアップ
>までは放置」という選択も考えられます.
>どう思われますでしょうか?

環境変数は「開かれたインタフェース」(うまい言い方が見つからないけど、外
部から自由に設定可能という意図)なので、(2)にしても(3)にしても、不都合が
たくさん出てきそうに思います。特に(3)はプラットフォームに依存した変数が
多いので、完璧を期すのは不可能では。

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

━━━━━━━━━━━━━━━━━
ただただし <http://sho.spc.gr.jp/>
♪ツッコミは、短く鋭く愛を込めて。
━━━━━━━━━━━━━━━━━