Bonjour,

Je cherche à faire un forum dans lequel les utilisateurs peuvent utiliser certains éléments HTML pour la présentation. Ça ça marche bien.

Mais je veux aussi leur permettre de scripter un comportement, par exemple utiliser un <canvas> et dessiner dessus.
exemple d'un post :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Contemplez ce joli rond :
 
<canvas id="canvas" width="640" height="480"/>
<script>
canvas = getCanvas('canvas');
canvas.setColor('blue');
canvas.fillCircle(320, 240, 20);
</script>

Ce qui aura pour effet de dessiner un disque bleu. Il y a d'autres fonctions pour réagir à un clic, faire des animations, déplacer des éléments, etc. Là on voit un appel à une nouvelle fonction getCanvas() qui renvoie une version minimisée d'un vrai contexte 2D d'un <canvas>.

Si je fais entièrement confiance à mes utilisateurs, ou si c'est juste pour le staff, c'est tout simple, il n'y a pas de problème.
Mais pour les autres, assez rapidement j'aurai quelque chose comme :

Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<script>
document.getElementById('title').innerHtml = '<h1>Un élément de votre anatomie est toute petite !!!!!1!1!</h1>';
</script>

Ou pire. Surtout pire.
Le problème : je ne veux pas qu'ils aient accès à 'document', 'getElementById()', ni aucune variable ou fonction du DOM (éventuellement aucune variable ou fonction que celles que je fournis.) S'ils font une boucle, je veux pouvoir surveiller son temps d'exécution et l'interrompre si elle exagère.

Il y a une solution évidente en théorie, mais laborieuse en pratique : inventer un nouveau langage de script et l'implémenter en JavaScript. Et à la limite, ça pourrait juste être un sous-langage de JavaScript, implémenté en JavaScript.
Mais je me demandais s'il n'existait pas déjà des technologies pour intégrer des scripts exécutables venant de visiteurs, en limitant drastiquement les possibilités de code malveillant.

Je n'arrive pas à trouver de mot-clé qui décrive ce que je cherche, du coup mes recherches Google répondent à côté.

Quelqu'un a-t-il entendu parler de quelque chose comme ça ?