2010-07-07 7 views
2

Je cherche à permettre aux utilisateurs de créer des modèles pour afficher leurs données, et ces modèles doivent être rendus en utilisant JavaScript. Je me demandais s'il était possible de le faire en toute sécurité? J'ai juste besoin de choses simples comme des boucles et des instructions if-else et bien sûr d'accéder et d'imprimer des valeurs de variables dans un objet donné.Safe JavaScript Templates

Existe-t-il des bibliothèques de modèles qui permettent cela, ou des méthodes simples pour accomplir cette tâche?

Répondre

0

Vous ne pouvez pas exécuter quelque chose de sûr dans le navigateur. Ce que vous pouvez faire est de bac à sable un contenu potentiellement dangereux dans un IFRAME avec un src légèrement différent de votre page principale. par exemple:

  • votre page est sur www.example.com
  • et votre iframe est quelque chose comme: sandbox.example.com, www.example.com:8080 ...

Le IFRAME ne sera pas en mesure d'accéder aux ressources de la page parent. Cela n'empêche pas XSS, mais c'est une autre question dont vous devez vous préoccuper de toute façon.

Et si vous regardez à propos d'un moteur de modèle, jetez un oeil à PURE, il sépare bien HTML et JS.

Vous pouvez alors donner l'option aux personnes de ne créer que le code HTML des modèles et de laisser le code JS de votre côté. Et si nécessaire, créez une fonction de nettoyage pour vous assurer que le code HTML ne contient pas de JS.