[#49861] テンプレートシステムを安全に使う — "5.5" <5.5@...>
5.5 です。
5p2+5bC+44Gn44GZ44CCDQoNCuaVsOW5tOWJjeOBq+WQjOOBmOOCiOOBhuOBquWxgOmdouOBjOOB
[#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=
まつもと ゆきひろです
[#49877] Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...>
44GT44KT44Gr44Gh44Gv44CCRGljZeOBp+OBmeOAgg0KDQpSdWJ544Oq44OV44Kh44Os44Oz44K5
西山和広です。
6KW/5bGx5ZKM5bqD44GV44KTDQoNCkRpY2XjgafjgZnjgIINCuOBmeOBv+OBvuOBm+OCk+OAgeOD
西山和広です。
RGljZeOBp+OBmeOAgg0KDQo+IENobUZveCDjgafjgoLjgYbjgaHjgofjgaPjgajplrLopqfjgZfj
RGljZeOBp+OBmeOAgg0KDQrvvJ7opb/lsbHlkozluoPjgZXjgpMNCuWFiOaXpeOBlOWgseWRiuOB
西山和広です。
西山和広です。
RGljZeOBp+OBmeOAgg0K44GZ44G/44G+44Gb44KT44CB6L+U5L+h44GM6YGF44GP44Gq44KK44G+
RGljZeOBp+OBmeOAgg0KDQrjgYLjga7lvozjgYTjgo3jgYTjgo3oqabjgZfjgabjgb/jgZ/jga7j
西山和広です。
RGljZeOBp+OBmeOAgg0KDQo+IENobUZveCDjgpLlhaXjgozjgabjgb/jgovjga7jga/jgZ3jgpPj
RGljZeOBp+OBmeOAgg0KDQrlhYjpgLHjgYroqbHjgZfjgZfjgabjgYTjgZ8NCuOAjG5vZGUtd2Vi
西山和広です。
RGljZeOBp+OBmeOAgg0KDQrlv6voq77jgYTjgZ/jgaDjgY3jgYLjgorjgYzjgajjgYbjgZTjgZbj
西山和広です。
RGljZeOBp+OBmeOAgg0KDQrjgZTmhI/opovjg7vjgZTopoHmnJvjgYLjgorjgYzjgajjgYbjgZTj
[ruby-list:49886] Re: テンプレートシステムを安全に使う
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/