Безопасные шаблоны JavaScript - PullRequest
2 голосов
/ 07 июля 2010

Я хочу позволить пользователям создавать шаблоны для отображения своих данных, и эти шаблоны должны отображаться с использованием JavaScript. Мне было интересно, можно ли было безопасно это сделать? Мне просто нужны простые вещи, такие как циклы и операторы if-else, и, конечно, доступ и печать значений переменных в данном объекте.

Существуют ли какие-либо библиотеки шаблонов, которые позволяют это, или простые методы выполнения этой задачи?

1 Ответ

0 голосов
/ 07 июля 2010

Вы не можете запустить что-то безопасное в браузере.

Что вы можете сделать, это поместить в песочницу потенциально небезопасный контент в IFRAME с src, немного отличающимся от вашей главной страницы.Например:

  • ваша страница включена www.example.com
  • , а ваш iframe имеет что-то вроде: sandbox.example.com, www.example.com:8080, ...

IFRAME не сможет получить доступ к ресурсам родительской страницы.Это не мешает XSS, но это еще одна проблема, о которой вам все равно придется позаботиться.

И если вы посмотрите на движок шаблонов, взгляните на PURE , он хорошо разделяет HTML и JS.

Затем вы можете дать людям возможность создавать HTML только из шаблонов и оставлять код JS на вашей стороне.А при необходимости создайте функцию очистки, чтобы убедиться, что HTML не содержит JS.

...