>>282
スマソ。「汚染さない」→「汚染されない」

現在のRubyの仕様は
・任意のオブジェクトは Object#taint で汚染することができる。
だと、オレは理解している。

でも実際に試してみると、Fixnum, Symbol, {Nil,True,False}Class は
:foo.taint.tainted? # => false
などとなる。

これは上に書いた仕様と違うのでマズイ。これの解決策は二つある。
(a) Fixnumなども、ちゃんと汚染できるようにする
(b) 「Fixnumなど、一部のオブジェクトは汚染できない」という仕様に変更する

普通に考えると(a)なんだけど、このケースでは(b)を選択しても、特に問題は
起きないような気がする。それだったらエラい人の好きな方に決めてもらって
いいよ……というのが>>279の前半で書きたかった事。

でも再考してみると、Bignum と Fixnum の関係だとか、よく分かんなく
なってきたので、その主張は保留。

後半の話は、オレが Ruby の汚染モデル(というか、汚染状態の伝搬モデル)を
勘違いしてそうな気もする。「foo.tainted? == true の時、foo を元にして
作ったオブジェクトは全て自動的に汚染される」という理解は合ってる?

リファレンス「セキュリティモデル」
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%A5%BB%A5%AD%A5%E5%A5%EA%A5%C6%A5%A3%A5%E2%A5%C7%A5%EB