=begin
= dRubySecurity

== dRubyのセキュリティについて

* dRubyとはなんですか?
  * dRubyはRubyのメソッド呼び出しをネットワーク越しに行なうライブラリです。

* dRubyはどのように通信を保護しますか?
  * dRubyは暗号化や認証は行ないません。

* dRubyのサービスは悪意のあるメソッド呼び出しから保護されますか?
  * いいえ。保護されません。dRubyはsandboxを提供しません。

* だれでもメソッドを呼び出せてしまいますか?
  * はい、そうです。どのホスト、プロセスもメソッドを呼び出せます。
    これは次のように規制できます。
    * ACLを使って、呼び出せるホストを規制できます。
    * drb-1.3.8では druby://localhost:port のようにlocalhostの
      インターフェイスに限定してサービスを提供することができます。
    * drb-2ではSSLやUNIXドメインソケットを利用することもできます。

* どんなメソッドでも呼び出せてしまいますか?
  * はい、そうです。
    Rubyと同様な可視性を提供したいのですが、完全ではありません。
    次のように振舞います。
    * privateなメソッドは呼び出せない
    * protectedなメソッドは呼び出せる。

* 呼ばれたくないメソッドをprivateにすれば安心ですか?
  * いいえ。
    send, method, extendを使うと任意のメソッドを呼び出せることが
    わかっています。他にも方法があるかもしれません。

* evalも呼べてしまうのですか?
  * はい、そうです。ただし、$SAFE=1にしたサービスでは、eval系のメソッドは
    SecurityError例外となります。この例外はRubyインタプリタが発生させます。

=end
