Ваш вопрос задает:
"Правка. Основная причина, по которой я хотел бы это сделать, - позволить им использовать свой собственный javascript и иметь свои собственные CSS и div, а также то, что не для вывода".
Если вы разрешите пользователям предоставлять произвольный JavaScript, то очистка ввода не стоит усилий. Определение межсайтового скриптинга (XSS) в основном гласит: «пользователи могут предоставлять JavaScript, а некоторые пользователи плохие».
Теперь некоторые веб-сайты позволяют пользователям предоставлять JavaScript, и они снижают риск одним из двух способов:
- Разместите CMS отдельного пользователя в другом домене. Blogger и Tumblr (например, myblog. blogspot .com против blogger.com) делают это, чтобы шаблоны пользователя не могли украсть файлы cookie других пользователей. Вы должны знать, что вы делаете, и никогда не размещать пользовательский контент в корневом домене.
- Если пользовательский контент никогда не передается между пользователями, то не имеет значения, какой скрипт предоставляют злоумышленники. Тем не менее, CMS предназначены для совместного использования, поэтому это, вероятно, здесь не применимо
Существуют некоторые фильтры черного списка, которые могут работать, но они работают только сегодня . Спецификация HTML и браузеры регулярно меняются, что делает фильтры практически невозможными для обслуживания. Чёрный список - верный способ избежать проблем с безопасностью и функциональностью.
При работе с пользовательскими данными всегда относитесь к ним как к ненадежным. Если вы не обратились к этому вопросу в начале продукта, и ваши сценарии изменились, почти невозможно вернуться и найти все точки XSS или изменить продукт, чтобы предотвратить XSS, не расстраивая ваших пользователей.