2012-04-13 2 views
0

Existe-t-il un plugin permettant à l'utilisateur de créer ses propres modèles? Donc, j'utilise smth commeModèles sécurisés (Ruby on Rails)

Templates.find(5).render(:val1 => val1, :val2 => val2) 

Il y a un bon plug-in nommé liquide mais il ne semble pas être en sécurité (l'utilisateur peut déposer la base de données et ainsi de suite).

Merci.

Répondre

4

Le liquide est un système de positionnement très populaire et est considéré comme sûr. En fait, c'était l'un des objectifs de conception. De la documentation du liquide:

liquide est un moteur de modèle qui a été écrit avec des exigences très spécifiques:

Il doit avoir une belle et simple balisage. Les moteurs de gabarit qui ne produisent pas de balisage esthétique ne sont pas amusants à utiliser.

Il doit être non évalant et sécurisé. Des modèles liquides sont créés pour que les utilisateurs puissent les éditer. Vous ne voulez pas exécuter du code sur votre serveur que vos utilisateurs ont écrit.

Il doit être sans état. Les étapes de compilation et de rendu doivent être séparées de sorte que l'analyse et la compilation coûteuses puissent être effectuées une fois et plus tard, vous pouvez simplement le faire passer dans un hachage avec des variables et des objets locaux.

2

La locomotive CMS utilise une gemme appelée liquide qui prétend le faire. Vérifiez ici http://rubygems.org/gems/liquid.

+0

Je l'ai mentionné dans ma question. :) Cependant, n'est-ce vraiment pas sûr? Je peux exécuter n'importe quel code dans le modèle, n'est-ce pas? – Ximik