From: Shugo Maeda Date: 2009-07-23T22:02:35+09:00 Subject: [ruby-dev:38889] Re: セキュリティモデルのドキュメント 前田です。 2009/07/20 10:51 に Tanaka Akira さんは書きました: >> === ライブラリにおけるuntaint >> >> メソッドの引数などでユーザから与えられたデータが汚染されたオブジェクト >> でない場合は、ユーザが指定した操作の実行を意図していると判断し、処理の >> 実行に必要な内部データのuntaintは、ライブラリ側で行うことが望ましい。 >> >> ライブラリ内部で生成されるオブジェクトについては、ライブラリのユーザ側 >> からuntaintすることができないため、上記のようなuntaintを行わないと、そ >> のライブラリをセーフレベル1以上では利用することができないためである。 > > これだけだと untaint しても安全かどうかどうやって判断したら > いいのかわかりませんねぇ。 > > 動かなかったら何も考えずに untaint するのが正しいとはちょっ > と思えませんし。 > > 安全性について何を考えて検討すればいいのかというところがわか > りません。 以前書いたことの繰り返しになりますが、セーフレベル1〜3のtaint機構は あくまでもアプリケーションプログラマのミスに対するフェールセーフ機構 であり、安全性の確認はライブラリ側ではなくアプリケーション側の責任だと 考えています。 今のセキュリティモデルでは、アプリケーションから渡されたオブジェクトが 汚染されていない場合は、ライブラリはアプリケーションに指示された通りに 動作することが期待されているように思います。 # 設計者のまつもとさんに違うと言われれば別ですが。 中途半端だと言われればそうかもしれませんが、まずは現在の設計の意図 を明確にしたいと思います。 その上で、変えた方がよい、あるいはいっそのことなくしてしまった方がよい、 といった議論をしたいです。 -- Shugo Maeda