[#49861] テンプレートシステムを安全に使う — "5.5" <5.5@...>
5.5 です。
9 messages
2014/07/07
[#49868] Rubyへの要望(願望) — MASAKI Yuhsuke <reasonset@...>
Ruby listの皆様、はじめまして、MASAKI Yuhsukeです。
14 messages
2014/07/12
[#49870] Re: Rubyへの要望(願望)
— Yukihiro Matsumoto <matz@...>
2014/07/12
まつもと ゆきひろです
[#49877] Rubyリファレンス chm版リミックス更新(2014年7月版) — Dice <tetradice@...>
こんにちは。Diceです。
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
西山和広さん
[#49891] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Kazuhiro NISHIYAMA <zn@...>
2014/07/24
西山和広です。
[#49893] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Dice <tetradice@...>
2014/07/25
Diceです。
[#49894] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Dice <tetradice@...>
2014/07/26
Diceです。
[#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
Diceです。
[#49906] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Dice <tetradice@...>
2014/08/10
Diceです。
[#49907] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Kazuhiro NISHIYAMA <zn@...>
2014/08/11
西山和広です。
[#49909] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Dice <tetradice@...>
2014/08/11
Diceです。
[#49919] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Dice <tetradice@...>
2014/08/17
Diceです。
[#49921] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Kazuhiro NISHIYAMA <zn@...>
2014/08/20
西山和広です。
[#49924] Re: Rubyリファレンス chm版リミックス更新(2014年7月版)
— Dice <tetradice@...>
2014/08/20
Diceです。
[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/