[#21296] test and sample directory — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです。
5 messages
2003/09/01
[#21325] illegal member in %w array — kkosako@...
%w配列で、継続行の先頭が空白のときに
5 messages
2003/09/04
[#21337] Re: illegal member in %w array — kkosako@...
> From: matz@ruby-lang.org [mailto:matz@ruby-lang.org]
12 messages
2003/09/04
[#21339] Re: illegal member in %w array
— matz@... (Yukihiro Matsumoto)
2003/09/04
まつもと ゆきひろです
[#21338] $SAFE=4 での autoload — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
21 messages
2003/09/04
[#21346] Re: $SAFE=4 での autoload
— nobu.nakada@...
2003/09/04
なかだです。
[#21359] Re: $SAFE=4 での autoload
— Hidetoshi NAGAI <nagai@...>
2003/09/05
永井@知能.九工大です.
[#21361] Re: $SAFE=4 での autoload
— matz@... (Yukihiro Matsumoto)
2003/09/06
まつもと ゆきひろです
[#21363] Re: $SAFE=4 でのautoload
— nobu.nakada@...
2003/09/08
なかだです。
[#21364] Re: $SAFE=4 でのautoload
— matz@... (Yukihiro Matsumoto)
2003/09/08
まつもと ゆきひろです
[#21369] ext/openssl on mswin32 — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
4 messages
2003/09/10
[#21384] LocalJumpError -> ThreadError — Masatoshi Seki <m_seki@...>
12 messages
2003/09/16
[#21385] Re: LocalJumpError -> ThreadError
— matz@... (Yukihiro Matsumoto)
2003/09/16
まつもと ゆきひろです
[#21386] Re: LocalJumpError -> ThreadError
— Masatoshi Seki <m_seki@...>
2003/09/16
咳といいます。
[#21388] Re: LocalJumpError -> ThreadError
— matz@... (Yukihiro Matsumoto)
2003/09/17
まつもと ゆきひろです
[#21389] Re: LocalJumpError -> ThreadError
— m_seki@...
2003/09/17
[#21403] Building 1.8.0 on Solaris with Sun CC — Masahiro TANAKA <masa@...>
9 messages
2003/09/22
[#21405] Re: Building 1.8.0 on Solaris with Sun CC
— 桑村慎哉 <kuwa@...>
2003/09/25
桑村です。
[#21414] deferred finalizers — nobu.nakada@...
なかだです。
5 messages
2003/09/26
[#21415] 定数のスコープ — akira yamada <akira@...>
8 messages
2003/09/26
[#21416] warnの戻り値 — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
8 messages
2003/09/26
[#21419] Makefile.inのlex.c — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
15 messages
2003/09/28
[#21422] Re: Makefile.inのlex.c
— matz@... (Yukihiro Matsumoto)
2003/09/28
まつもと ゆきひろです
[#21434] break from block yielded in until — Minero Aoki <aamine@...>
青木です。
13 messages
2003/09/29
[#21439] Re: break from block yielded in until
— Tietew <tietew-ml-ruby-dev@...>
2003/09/30
[#21442] Re: break from block yielded in until
— matz@... (Yukihiro Matsumoto)
2003/09/30
まつもと ゆきひろです
[ruby-dev:21309] Re: 大量メモリ消費攻撃に対する対応
From:
Hidetoshi NAGAI <nagai@...>
Date:
2003-09-03 04:18:17 UTC
List:
ruby-dev #21309
永井@知能.九工大です.
私が $SAFE を十分に理解していないことによる間違いがありましたら
ご指摘下さい.
From: matz@ruby-lang.org (Yukihiro Matsumoto)
Subject: [ruby-dev:21306] Re: 大量メモリ消費攻撃に対する対応
Date: Wed, 3 Sep 2003 11:45:02 +0900
Message-ID: <1062557100.960636.23005.nullmailer@picachu.netlab.jp>
> $SAFE=3というのは「$SAFE=4にいたる中間の状態」程度の意味で実
> 用になるかは検証されていません。特に信頼できないプログラムに
> 対しては。$SAFE=4でも動く回避策はないか模索するべきではない
> でしょうか。
そうですね.確かにそれが正しい姿勢だとは思います.
ただ,$SAFE=4 にしてしまうとインスタンス変数の操作や
配列操作も一切できなくなってしまいますので,
ライブラリの実装においてはかなり困ってしまいます.
# もちろん,「それができないなら安全ではないのだから,
# そんなライブラリは信頼できないプログラムには使わせない」
# というのも理解できます.
釈迦に説法ではありますが,例えば
-------------------------------
class A
@@tbl = []
def initialize
@@tbl << self
end
end
-------------------------------
というようなクラスのオブジェクトは $SAFE=4 では生成できません.
信頼できないプログラムを実行させる際の理想形は,
secure_load 'untrusted-program.rb' あるいは
secure_eval "untrusted-script-string" のようにして
信頼できるマスタースレッドの管理下で安全に実行できること
ではないかと思います.
$SAFE=4 はもっと細かいレベルでのコントロールのためのもので,
このような実行には厳しすぎて使えないと感じています.
# ですので $SAFE=3 に逃げてしまったのですが,ダメでしたか.(^_^;
> |実は「制約値を自動的に」というのはあまり考えていませんでした.
> |信頼できるスレッド (メインスレッド) から信頼できないスレッドを
> |起動する際に適当に制約を与えるというようなことを思っていました.
> |えいやぁでサンプル的な値を決めておいて,後は任せるというのでは
> |だめですかね.(^_^;
>
> メモリの上限とは必要量というのは環境によって相当異なるのを無
> 視してよいのかというと私にはよくわかりません。「ないよりはマ
> シ」という主張は理解できますが。
ああは書きましたが,実は一律に値をソースに埋め込んでしまうことは
私も良い方法だとは考えていません.
# 「ないよりはマシ」という気持ちがあったのは事実ですが.(^_^)
ですので,実行環境の情報からサンプル値を定めるのに
いい情報/方法がないかと考えてはいましたが,
残念ながらまだ思い付けてはいません.
仮に思い付いたとしても,多分,OS に依存するであろう方法を
埋め込んでしまうことが良いかどうかも心配です.
> |上の状態でメインスレッドはメモリ制約なしに動いてますから,
> |「スレッド(信頼できるスレッド;メインスレッドに限る?)は,
> |自らの制約値までは他のスレッドの制約値を緩めることができる」
> |として,信頼できるスレッドからのメッセージに応じて利用者が
> |許可を出せるようにするというのは難しいですかね?
>
> 「自らの制約値までは他のスレッドの制約値を緩めることができる」
> というのは分かりますし、ありえる解だと思うのですが、「信頼で
> きるスレッドからのメッセージに応じて利用者が許可を出せるよう
> にする」というのは具体的にどういうことかイメージがつかめませ
> んでした。
メモリサイズオーバー時に,メインスレッド (でなくてもいいのですが)
からコンソールまたはウィンドウで「信頼できないプログラムがさらに
多くのメモリ使用を求めてきていますが,許可しますか?」というような
メッセージを表示し,それに対してユーザから OK の返事が得られれば
新たにメモリを確保するというようなことです.
...が,そのメッセージが信用できるものであるとの保証はどうする
のだという問題もありますね.
--
永井 秀利 (九工大 知能情報)
nagai@ai.kyutech.ac.jp