From: Hideto ISHIBASHI Date: 2000-04-11T22:08:08+09:00 Subject: [ruby-list:21858] Re: [Q]Security Check($SAFE): FileTest within mod_ruby ----Next_Part(Tue_Apr_11_21:35:00_2000_518)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit 石橋秀仁です。 > まつもと ゆきひろです > |ぼくのところでは、mod_rubyから起動されるeRubyスクリプト(.rhtml)の > |セキュリティレベル($SAFE)は'1'です。そのとき、 > | File.open("...") > |は実行できるのに、 > | FileTest.file?("...") > | File.file?("...") > |はSecurityErrorです。 > > これは正確に言えば違うはずです。 現象が特定できたので後述します。 引用を省略しましたけれども、あとの説明については、 今までもそのように理解していました。納得しています。 > |つぎにmod_rubyのセキュリティ設定について。 > |思うのですが、どのようにして$SAFEを下げる(正確には「下げない」)、 > |もしくは特権的な操作を許可することができるのでしょうか。 > srm.confに指定するなどの方法を採用する可能性は否定しませんが、 > 私からはわざわざセキュリティホールになる仕様変更を前田さんに > 頼めません。ご自分で説得してください。;-) いえいえ (^^; 現状で、無いのはむしろありがたいことです。 いくら「お気楽」のRubyでも、セキュリティまで「お気楽」だと困るので :-) # やかましいくらい厳しいほうが「嬉しい」し結局は「お気楽」ですね。 > 前述のように$SAFE=1でSecurityErrorが出るのは -私の主観では- > CGIのようなプログラムではかなりあぶない行為ですから、許可し > ない方が良いと思います。しかし、「外部から入力されていても内 > 容はチェックした、大丈夫」とお考えの場合にはuntaintメソッド > で明示的に汚染マークを外してくださいませ。 そこらへんは、自己責任原則およびセキュリティポリシーの明確化 としてとして納得できます。また、セキュリティ知識が無くても 大惨事を招かないための「親心」として、安全側に設定して くださるのにも賛成です。 と、いうわけで、結局、まつもとさんの御意見にすべて賛成です。 それだけではなんなので(^^; 例のSecurityErrorを出すコード(eRuby HTML;.rhtml)と、 その出力を添付します。 これは意図された動作でしょうか? -- Hideto "rubyholic" ISHIBASHI ----Next_Part(Tue_Apr_11_21:35:00_2000_518)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=test.rhtml Local File Access Test Using A Wildcard
<% files = Dir.glob("*.html") %>
files = Dir.glob("*.html") # => <%= files.join(", ") %>
tainted strings : <%= files.find_all{|file| file.tainted?}.size %>
----Next_Part(Tue_Apr_11_21:35:00_2000_518)-- Content-Type: Text/Html; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=test.html Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Local File Access Test Using A Wildcard

files = Dir.glob("*.html") # => index.html, links.html, memo.html, test.html
tainted strings : 4
----Next_Part(Tue_Apr_11_21:35:00_2000_518)----