Короче говоря, у меня есть веб-приложение, которое помимо прочего позволяет пользователям (которым необходимо войти в систему) создавать, развертывать и получать представления из онлайн-форм, используя JSON инфраструктуру для хранения данных.
В тот момент, когда пользователь сохраняет свою вновь созданную форму, выполняются различные проверки, чтобы предотвратить внедрение SQL и выявить потенциальные эксплойты XSS.
Однако при создании фактической формы любой код, введенный в поля, отображается в реальном времени в браузере пользователя. Таким образом, если бы я решил ввести следующее в поле абзаца:
<a href="#" onclick="alert(1);">click me</a>
... он немедленно отобразит ссылку и запустит JS при нажатии. Тем не менее, если пользователь попытается сохранить эту форму, код будет разорван моими существующими мерами безопасности и перестанет функционировать в развернутой форме. Таким образом, единственным человеком, который мог когда-либо запускать код, был бы человек, который его создал.
Итак, мой вопрос заключается в том, какой риск существует, позволяя пользователям динамически создавать контент в режиме реального времени, включая JS, при условии, что они не могут развернуть его или сохранить в моей БД? Я чувствую, что, вероятно, существует риск, но я не эксперт по XSS.
Чтобы уточнить, только человек, генерирующий код, сможет его запустить. В тот момент, когда они сохранили данные, они разорвутся на части.