[#2560] ruby 1.0-970331 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2571] a mailer written in ruby/Tk — aito@...5nazha.yz.yamagata-u.ac.jp (Akinori ITO)
あ伊藤@山形大学です。
まつもと ゆきひろです.
あ伊藤です。
まつもと ゆきひろです.
> 面倒でなければ自分でおいていただけるとありがたいです.
[#2592] FAQ — MAEDA Shugo <ender@...>
前田です。
まつもと ゆきひろです.
前田です。
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
金光です。FAQサーバ向けにとりあえず、質問だけ提出します(sjisから変換してください)。
[#2596] help — Masao Kanemitsu <masao-k@...>
金光です。調子が悪いので、看てやってください。
まつもと ゆきひろです.
In message <199704040609.PAA22926@castanet.caelum.co.jp>
まつもと ゆきひろです.
tk関係のサンプルが動いてくれなかった件ですが:
まつもと ゆきひろです
In message <199704071537.AAA28214@castanet.caelum.co.jp>
まつもと ゆきひろです.
In message <199704090735.QAA11322@castanet.caelum.co.jp>
まつもと ゆきひろです.
けいじゅ@SHLジャパンです.
In message <199704090856.RAA14093@castanet.caelum.co.jp>
わたなべです.
まつもと ゆきひろです.
わたなべです.
わたなべです.
まつもと ゆきひろです.
わたなべです.
まつもと ゆきひろです.
わたなべです.
まつもと ゆきひろです.
前田です。
大庭@SHLJapanです.
前田です。
大庭@SHLJapanです.
大庭@SHLJapanです.
前田です。
けいじゅ@SHLジャパンです.
まつもと ゆきひろです.
[#2619] Re: WWW library (Re: class design) — Shin-ichiro Hara <sinara@...>
原です。
[#2625] [Req] alias for singltone method — keiju@... (Keiju ISHITSUKA)
けいじゅ@SHLジャパンです.
[#2655] Who is 'nobody' — sinara@...
原です。
[#2702] security model — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです.
[#2705] lineno ($.), English.rb — WATANABE Hirofumi <watanabe@...>
わたなべです.
[#2721] [BUG] File.umask — jkuro@... (Kuroda Jun)
黒田です。
まつもと ゆきひろです.
[#2726] Re: class design (Re: url escape) — takagi@... (TAKAGI Hiromitsu)
高木と申します。
[#2767] [BUG?] strip — MAEDA Shugo <ender@...>
前田です。
[#2819] ruby 1.0-970414 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2829] configure script — TANAKA Shin-ichi <tanaka@...>
田中です。たびたびすみません。
[#2844] ruby 1.0-970422 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#2860] ruby 1.0-970425 released — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
黒田です。
まつもと ゆきひろです.
黒田です。
[#2876] how to init class? — lo_tek@... (MAEDA Shugo)
前田です。
[ruby-list:2702] security model
まつもと ゆきひろです.
rubyをCGIとかにも使おうと思ったらやっぱり危険な操作は検出し
てくれた方が嬉しいですよね.人間がいちいち「これ大丈夫かな」
などと考えながら作るより,こういうことは言語が検出してくれた
方がrubyの思想にあっているようにも思えます.
そう思って,昔safe.rbというのを書いてみましたが,やはりruby
だけでセキュリティを確保するのはちょっと無理そうでした.で,
それ以来つらつらと考えていたのですが,perlのtaintをベースに
した以下のモデルでうまく行きそうです.
穴が無いか考えてみてくださる人はいませんか?
ruby securityモデル
セキュリティレベルはグローバル変数$SAFEの値(整数)で設定する.
$SAFEの値の初期値は0である.$SAFEの値を現在の値より小さくす
る事はできない.
$SAFEの値はthreadローカルである.あるthreadでの$SAFEの値は親
threadの値を引き継ぎ,値を大きくしても別のthreadでの値は変わ
らない.
文字列はtaintフラグを持つ.taintフラグのたった文字列は「汚れ
ている」とみなされる.「汚れている」文字列のコピー(clone/dup)
も汚れている.
セキュリティレベルが0以上の時,「汚れている」文字列を以下の
操作の引数にする事はできない.
* file/pipe/dir/socket/dbmのオープン
* File操作(chmod..など)
* system, ``
* load/require
* その他,危なそうな操作(思い付いたら追加)
セキュリティレベルが1以上の時,以下の操作で与えられる文字列
は汚れている.
* 環境変数の取り出し
* getsなどストリームからの読み込み
セキュリティレベルが2以上の時,新しく生成される全ての文字列
は汚れている.
セキュリティレベルが3以上の時,以下の操作は禁止される.
* Process.kill
* その他プロセスに関する危なそうな処理(思い付いたら追加)
セキュリティレベルが4以上の時,以下の操作は禁止される
* 大域変数の値の変更
これで,新たにthreadを作ってその中で$SAFEの値を大きくすれば,
信頼できないコードでも安心して実行できそうに思うのですが,ど
うでしょう?
例:
unsafe_script = url.readlines.join
Thread.start do
$SAFE = 4
eval unsafe_script
end