Вы не можете запустить что-то безопасное в браузере.
Что вы можете сделать, это поместить в песочницу потенциально небезопасный контент в IFRAME с src, немного отличающимся от вашей главной страницы.Например:
- ваша страница включена
www.example.com
- , а ваш iframe имеет что-то вроде:
sandbox.example.com
, www.example.com:8080
, ...
IFRAME не сможет получить доступ к ресурсам родительской страницы.Это не мешает XSS, но это еще одна проблема, о которой вам все равно придется позаботиться.
И если вы посмотрите на движок шаблонов, взгляните на PURE , он хорошо разделяет HTML и JS.
Затем вы можете дать людям возможность создавать HTML только из шаблонов и оставлять код JS на вашей стороне.А при необходимости создайте функцию очистки, чтобы убедиться, что HTML не содержит JS.