From: Kazuhiko Date: 2005-07-08T00:51:18+09:00 Subject: [ruby-dev:26468] $SAFE=1 の open-uri で redirect 時にエラー かずひこです。 $SAFE=1 の時に open-uri でアクセスした URI が redirect されたときに、 untaint が伝播せずに security error になります。 例えば、http://www.ruby-lang.org/ -> http://www.ruby-lang.org/en/ の時に、 こんな感じになります。 $ ruby-1.8 -v -r open-uri -e '$SAFE=1; open( "http://www.ruby-lang.org/".untaint)' ruby 1.8.3 (2005-07-05) [i686-linux] /usr/lib/ruby/1.8/net/protocol.rb:83:in `initialize': Insecure operation - initialize (SecurityError) from /usr/lib/ruby/1.8/net/protocol.rb:83:in `connect' from /usr/lib/ruby/1.8/net/protocol.rb:82:in `timeout' from /usr/lib/ruby/1.8/timeout.rb:62:in `timeout' from /usr/lib/ruby/1.8/net/protocol.rb:82:in `connect' from /usr/lib/ruby/1.8/net/protocol.rb:64:in `initialize' from /usr/lib/ruby/1.8/net/http.rb:429:in `do_start' from /usr/lib/ruby/1.8/net/http.rb:418:in `start' from /usr/lib/ruby/1.8/open-uri.rb:245:in `open_http' from /usr/lib/ruby/1.8/open-uri.rb:629:in `buffer_open' from /usr/lib/ruby/1.8/open-uri.rb:167:in `open_loop' from /usr/lib/ruby/1.8/open-uri.rb:165:in `catch' from /usr/lib/ruby/1.8/open-uri.rb:165:in `open_loop' from /usr/lib/ruby/1.8/open-uri.rb:135:in `open_uri' from /usr/lib/ruby/1.8/open-uri.rb:531:in `open' from /usr/lib/ruby/1.8/open-uri.rb:86:in `open' from -e:1 redirect された二回目に open-uri.rb:221 に来た時点で、 221: target_host = target.host target.tainted? => false target.host.tainted? => true になっているようです。報告だけですみませんが、よろしくお願いします。 -- かずひこ 「恋とハックはアジャイルが命!」