[#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:49886] Re: テンプレートシステムを安全に使う

From: "Akinori MUSHA" <knu@...>
Date: 2014-07-16 08:35:35 UTC
List: ruby-list #49886
At Mon, 07 Jul 2014 12:25:55 +0900,
5.5 wrote:
> しかし,テンプレートシステムなので,任意の Ruby コードを書くことができ
> てしまいます。
> 自分だけ,あるいは仲間内でだけ書くならいいですが,匿名参加可能な多人数
> のプロジェクトだと,これって危険ですよね。
>
> どうにか安全にする方法ってあるんでしょうか?
>
> なんというか…たとえばテンプレート中で何をやっても,影響を封じ込める仕
> 組みとか,Haml や Slim のサブセットみたいなものを作って,やれることを
> 制限しちゃうとか。
> いろいろ想像したのですが,自分にできそうなことは思いつきませんでした。

そうした用途には Liquid や Mustache が向いていると思います。

前者は Shopify がASP提供するショッピングカートシステム用に設計されたも
ので、ユーザに十分なデザインの自由を与えつつ、負荷やセキュリティ面でま
ずいことをされないように十分考慮されています。多機能で拡張性も高く、ア
プリケーション固有のニーズやコンテキストに沿ってカスタマイズ可能です。

	http://liquidmarkup.org/

後者は Logic-less templates の名前の通り、YAMLやJSONで表現できるような
データ構造の参照と簡単な真偽判定くらいに機能が限定されています。ミニマ
リスト向け。やっぱりロジックが欲しい、というときはHandlebarsという拡張
を追加する感じ。

	http://mustache.github.io/

どちらもRubyコミュニティから生まれたものですが、他言語による実装も豊富
なので、安心して使えると思います。

--
Akinori MUSHA / https://akinori.org/

In This Thread