[#45670] ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...>

天野です。

40 messages 2008/12/02
[#45673] Re: ruby-1.9.1-preview2のruby-tk on OSX — Nobuyoshi Nakada <nobu@...> 2008/12/03

なかだです。

[#45676] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/03

天野です。

[#45678] Re: ruby-1.9.1-preview2のruby-tk on OSX — Nobuyoshi Nakada <nobu@...> 2008/12/03

なかだです。

[#45680] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/03

永井@知能.九工大です.

[#45701] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/04

天野です。報告遅れてすみません。

[#45707] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/05

永井@知能.九工大です.

[#45708] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/07

天野です。

[#45709] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/07

永井@知能.九工大です.

[#45710] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45711] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45712] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45713] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45714] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45715] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45716] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/08

天野です。

[#45717] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/08

永井@知能.九工大です.

[#45721] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/17

天野さん,

[#45722] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/17

天野です。

[#45725] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/17

永井@知能.九工大です.

[#45726] Re: ruby-1.9.1-preview2のruby-tk on OSX — Hidetoshi NAGAI <nagai@...> 2008/12/18

永井@知能.九工大です.

[#45727] Re: ruby-1.9.1-preview2のruby-tk on OSX — 天野竜太郎 <wn9r-amn@...> 2008/12/19

天野です。

[ruby-list:45665] Re: セキュリティ制御モデルの改善について

From: Kiyotaka ATSUMI <kiyotaka@...>
Date: 2008-12-02 08:31:17 UTC
List: ruby-list #45665
渥美です.

早速のご質問有難うございます.

"Makoto Kuwata" <kwa@kuwata-lab.com> wrote (Tue, 2 Dec 2008 13:43:43 +0900)

> * 複数の引数を取るようなメソッドの場合はどのようになりますか。

あるメソッドが2つ以上の引数を取る場合,その引数は全て当該オブジェクト
について安全でなければなりません.

例えば以下のコードですが,

----- BEGIN ----- BEGIN ----- BEGIN ----- BEGIN ----- BEGIN -----
class Html
  def wash(a)
    a.gsub!(/</, '&lt;')
    a.gsub!(/>/, '&gt;')
    return true
  end

  gate_public
  def foo(a, b)
    puts a
    puts b
  end
end

html = Html.new
str1 = gets       # safe for nil
str2 = gets       # safe for nil
html.clean(str1)  # safe for Html
# html.clean(str2)  # safe for Html
html.foo(str1, str2)
----- END ----- END ----- END ----- END ----- END ----- END -----

str2が洗浄漏れのため,fooメソッドを実行するとソフトウェア割り込みが発
生します.

ただ,ここには議論不足の所があり,

>       def foo(str, opts={})  # 引数が複数

で指摘されているように,配列やハッシュなどのオブジェクトを引数とした時
の対応が十分練れていません.現在の状態ですと,配列等のオブジェクト自身
は,受け取るオブジェクトに対して「安全マーク」を付けることが出来ますが,
そこに内包するオブジェクトまで「安全マーク」を付けません.そのため,
「安全マーク」が付けられた配列などから要素を取り出して,gate_private等
に定義したメソッドをその要素を引数として呼び出すと,その要素は洗浄して
いないために,ソフトウェア割り込みが発生してしまいます.

ただし,あらかじめ洗浄すべきデータが配列等と特定できる場合は,配列等の
要素一つ一つに対して,自身のオブジェクトのcleanメソッドを呼び出せば,
配列等のオブジェクト自身も,要素として内包するオブジェクトも洗浄するこ
とは可能です.

> * 複数のメソッドがあり、それぞれが異なるタイプの洗浄を
>   必要とする場合はどうなりますか。

元々,上記のような考えがありません.htmlを扱うオブジェクトとSQLを扱う
オブジェクトは違うものとしています.これは,htmlオブジェクトとSQLオブ
ジェクトの両方に安全である洗浄をするのは困難だろうと予想したためです.
このような場合は,htmlオブジェクトとSQLオブジェクトの両方を作成して頂
き,互いのcleanメソッドを呼びながら,データを交換することを想定してい
ます.

> * パッチを適用した Ruby と、適用してない Ruby とで、
>   コードを共通化する仕組みは用意されてますか。

今のところ予定していません.ここではクラス作成者とクラス利用者のプレイ
ヤーを想定しており,クラス利用者が勝手にセキュリティ制御を外せないよう
にすることを考えているためです.

とは言うものの,クラス作成者がいろいろテストしたい場面も有るでしょう.
スイッチを一つ設けて,gate_publicはpublicに,gate_protectedはprotected
に,gate_praivateはprivateに置き換えるようにすることは簡単に出来ると思
います.また,エディタで単にgate_を空列に置き換えても同じことになるで
しょう.

> * この方法を利用して作られたサンプルアプリケーションは
>   ありますか。またもしあるとして、それは公開されてますか。

すみません.何か提供するべきとは思っていますが,まだ何もありません.あ
まり大きくない例題がありましたらご教授頂けると幸いです.

--
Kiyotaka ATSUMI, Suzuka National College of Technology
Web: https://www.ka-lab.jp/
PGP Public Key: https://www.ka-lab.jp/pubkey/kiyotaka-at-ka-lab.jp.asc
Finger Print: 9E2A 80B4 0F3D 424E 035F B594 991F 7795 DD6D 560F






In This Thread

Prev Next