From: Shugo Maeda Date: 2002-07-11T12:57:09+09:00 Subject: [ruby-dev:17689] Re: resolv.rb with $SAFE==1 前田です。 At Wed, 10 Jul 2002 16:59:10 +0900, Tanaka Akira wrote: > > resolv.confなどのファイルから読み込んだ文字列をuntaintするように > > してはどうでしょうか。 > > 設定ファイルのパスが汚染されていれば、設定ファイルをopenした時点 > > でSecurityErrorが発生するので、問題はないように思います。 > > $SAFE は利用したことがないので感覚がつかめません、が、それが適切だと思 > うならそうして下さい。 では、commitさせていただきます。 念のため説明しておくと、現状では dns = Resolv::DNS.new("/etc/resolv.conf") のようにプログラマが汚染されていない文字列でresolv.confのパスを指 定した場合でも、resolv.confから読み込まれた文字列は汚染されている ために、利用時にSecurityErrorが発生してしまいます。 パッチをあてた場合は上記のようなケースではSecurityErrorが発生する ことなく利用することができますが、 # filenameは汚染された文字列 dns = Resolv::DNS.new(filename) のようにresolv.confのパスとして汚染された(おそらく外部から取得さ れた)文字列を指定すると、openする段階でSecurityErrorが発生します。 -- 前田 修吾