From: EGUCHI Osamu Date: 1997-09-24T08:35:17+09:00 Subject: [ruby-list:4544] Re: Object#freeze えぐち です。 =[ruby-list:4539] Re: Object#freeze= > まつもと ゆきひろです > > In message "[ruby-list:4537] Re: Object#freeze" > on 97/09/23, "EGUCHI Osamu" writes: > > |えぐち です。 > > |$:.type ==> Array > |なので、ちょっと違うぞなのですが、 > |「Object の時から、 freeze を実装してしまいましょう」 > |という文脈からいってそのとおりです。 > > Obejctの状態はいろいろですし,それらを全部freezeするのも大変 > そうなのでできれば避けたいと思っています. たしかに、オブジェクトの frozen? == TRUE な場合の それぞれのメソッドの対応を個別に吟味して実装するのは かなり大変な作業になりますね。 結局「定数オブジェクトが欲しい」ということですので、 もっと軽く実現出来ないか、時間を掛けて検討する価値がありそうです。 > |、、だんだん、#taint, #tainted? も文字列以外(Object???)から > |実装した方がいいような気が、、、文字以外から Insecure が進入しますよね?! > > String#tainted?は実装しようと思います.文字列を経由せずに > Insecureが侵入する事はない,と思ったので今のようになっている > んですが,実際の所どうなんでしょう.あまり,コストのかかる方 > 法は選択したくないのですが. String#tainted? は、いまのところ特に必要性を感じてなくても、 用意しておくと(セキュリティの実験で使えるので)便利でしょう。 (多分コストはそれほど掛からないと思います。というか内部的にはあるし) # frozen なオブジェクト tainted なオブジェクト 表現できると面白いですが、確かに尋常じゃなくいまの実装から 外れるので、「オーバーホール」する機会がくるまでは そっとしておきたいって感じですね。 この厄介な属性を挿入されているのが String というあたり ruby では文字列は特殊な位置を占めているんですね。 #MLのアーカイブをよく読んで、セーフレベルについて勉強します。