From: "NAKAMURA, Hiroshi" Date: 2000-12-30T13:26:33+09:00 Subject: [ruby-talk:8329] Re: Ruby cron scheduler for NT available Hi Dave, > From: Dave Thomas > Sent: Friday, December 29, 2000 11:07 PM > > As a Web Service(TM), dRuby seems too insecure to this > > purpose. > > Thant's a surprising statement. Has anyone come up with any examples > of ways in which a dRB server could be insecure? exit unless "anyone".include?( NaHi ) 2 points. 1. Firewall problem. 1-1. At this time, DRb could not be narrowed down to use only 1 port. DRb requires; - inbound: to ruby script, from any ip and any port - outbound: from ruby script, to any ip and any port But Seki-san plans to support this feature in DRb/2.0 according to http://www.jin.gr.jp/~nahi/RWiki/?cmd=view&name=dRuby%B3%AB%C8%AF%C8%C7 (Sorry, in Japanese.) 1-2. Firewall products does not know any of Ruby's marshaling format that dRuby use. So we cannot set any security policy to firewall. 2. Ruby's flexibility Try it. Server side. require 'drb' class TestServer def doit "Hello, Distributed World" end end aServerObject = TestServer.new DRb.start_service('druby://localhost:9000', aServerObject) DRb.thread.join # Don't exit just yet! And Client side. require 'drb' DRb.start_service() obj = DRbObject.new(nil, 'druby://localhost:9000') # Now use obj p obj.doit p obj.instance_eval { p `cat /etc/passwd` } But Seki-san plans to support $SAFE based capability system in DRb/1.4. You can avoid this type of flaw using ARb in http://www2a.biglobe.ne.jp/~seki/ruby/arb-0.4.tar.gz (Bare in mind it is not officially released now.) I do NOT think that "dRuby is insecure, and SOAP (or RMI or DCE/ONC RPC) is secure." For Web Service(TM), at this time, considering integration of other techniques I can use, dRuby seems insecure. // NaHi