14

テンプレートに含める特定の「変数」にアクセスできる Web ページの HTML テンプレートをエンドユーザーが編集できるようにするサービスを作成しています。

Liquid はまさにこの目的のために設計されており、(少なくとも比較的) 安全であり、本番環境で頻繁に使用されていることを私は知っています。ただし、Mustache のようなものと比較すると、この言語はエンド ユーザーにとってかなり複雑であることがわかります。

Mustache は素晴らしいように聞こえますが、セキュリティが心配です... エンドユーザーのテンプレートに使用されたことはありますか?

基本的に、エンドユーザー向けにRailsで使用できるテンプレートエンジンを探しています:

  1. 安全 - ユーザーによるコードの実行を許可しません...少なくともサーバー上では許可しません。ユーザーは、クライアント側の JavaScript を挿入できます。
  2. 強力 - エンドユーザーは、提供された「変数」を使用して、#1 のコンテキスト内で想像できるほぼすべての Web ページを作成できます。
  3. シンプル - 構文が明確で、エンドユーザーが簡単に適用できます
  4. JavaScript やその他の言語でのテンプレート構文のレンダリングがサポートされている場合のボーナス ポイント。

Liquid は 1 と 2 に適合しますが、3-4 には適合しません。口ひげは 2 ~ 4 を満たしていますが、1 番については確信が持てず、交渉の余地はありません。

洞察、経験、またはコメントを大いに感謝します。

4

1 に答える 1

4

Mustache は補間に優れており、Javascript の評価に使用している場合、サーバー側の脆弱性にさらされることは想像できません。これは、最も単純で最も強力なオプションです。プログラマーでない人が理解できるかどうかはわかりませんが、Liquid よりも簡単であることは確かです。

もう 1 つのオプションは、BBcode のような既存のより単純なユーザー マークアップ セットや、TinyMCE のようなリッチ テキスト編集ライブラリを使用することです。これらは機能が大幅に削減されていますが、平均的な人にとっては使いやすいものです。

于 2011-02-26T23:50:05.497 に答える