[#49868] Rubyへの要望(願望) — MASAKI Yuhsuke <reasonset@...>

Ruby list=E3=81=AE=E7=9A=86=E6=A7=98=E3=80=81=E3=81=AF=E3=81=98=E3=82=81=E3=

14 messages 2014/07/12

[#49877] Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...>

44GT44KT44Gr44Gh44Gv44CCRGljZeOBp+OBmeOAgg0KDQpSdWJ544Oq44OV44Kh44Os44Oz44K5

21 messages 2014/07/13
[#49879] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/13

西山和広です。

[#49890] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/23

6KW/5bGx5ZKM5bqD44GV44KTDQoNCkRpY2XjgafjgZnjgIINCuOBmeOBv+OBvuOBm+OCk+OAgeOD

[#49891] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/24

西山和広です。

[#49893] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/25

RGljZeOBp+OBmeOAgg0KDQo+IENobUZveCDjgafjgoLjgYbjgaHjgofjgaPjgajplrLopqfjgZfj

[#49894] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/26

RGljZeOBp+OBmeOAgg0KDQrvvJ7opb/lsbHlkozluoPjgZXjgpMNCuWFiOaXpeOBlOWgseWRiuOB

[#49895] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/26

西山和広です。

[#49897] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/07/27

西山和広です。

[#49899] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/07/31

RGljZeOBp+OBmeOAgg0K44GZ44G/44G+44Gb44KT44CB6L+U5L+h44GM6YGF44GP44Gq44KK44G+

[#49906] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/08/10

RGljZeOBp+OBmeOAgg0KDQrjgYLjga7lvozjgYTjgo3jgYTjgo3oqabjgZfjgabjgb/jgZ/jga7j

[#49907] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Kazuhiro NISHIYAMA <zn@...> 2014/08/11

西山和広です。

[#49909] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/08/11

RGljZeOBp+OBmeOAgg0KDQo+IENobUZveCDjgpLlhaXjgozjgabjgb/jgovjga7jga/jgZ3jgpPj

[#49919] Re: Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...> 2014/08/17

RGljZeOBp+OBmeOAgg0KDQrlhYjpgLHjgYroqbHjgZfjgZfjgabjgYTjgZ8NCuOAjG5vZGUtd2Vi

[ruby-list:49863] Re: テンプレートシステムを安全に使う

From: "5.5" <5.5@...>
Date: 2014-07-07 14:01:32 UTC
List: ruby-list #49863
5.5 です。

松尾さん,ご教示ありがとうございます。

(14/07/07 13:48), Aiga Matsuo wrote:
> 松尾です。
>
> 数年前に同じような局面があって、Rubyのsafe levelを利用したことがあります。

Ruby のセーフレベルって,こういうふうに使えるんですね!

たしか,Ruby を知り始めた頃,アスキーの『オブジェクト指向スクリプト
言語 Ruby』で読んでみたんですが,チンプンカンプンでした。
(本が悪いのでなく,読んで分かる素地が当時無かったのでしょう)


> エッセンスとしては下記のようなコードを書きました。。
>
> require 'erb'
>
> @erb = ERB.new('<%= IO.read("/etc/passwd") %>')
>
> Thread.start do
>    $SAFE = 3
>    print @erb.result(binding) # => SecurityError
> end.join

これはとても分かりやすいですね。このサンプルと,るりまの解説を読ん
で,ようやく分かってきました。
Thread.start を使っているのは,セーフレベルの変更を局所化するため
なのですね。


> 最近のRubyだと$SAFE=4がobsoleteになったので3にしていますがsandboxとして
> それなりに動作します。
> $SAFE=4がなぜ排除されたのかあたりの事情を知らないのでこの辺りは突っ込ん
> で調べておいたほうが良さそうですが。

そうですね。

結局,$SAFE=0, 1 は何となく分かりましたが,2, 3, 4 はよく分かりま
せんでした。
ruby-list の過去メールを見ても,3 は 4 を用意するためにあるという
ようなことが書かれていて,それでなぜ 4 だけ廃止するのかなと思った
り。


-- 
5.5@moji.gr.jp

In This Thread