Я работаю над веб-фреймворком и пытаюсь встроить в него предотвращение XSS.Я настроил его так, что он будет избегать входящих данных для хранения в базе данных, но иногда вы хотите сохранить HTML, который генерирует пользователь.Я пытаюсь создать пользовательский тег, который будет препятствовать выполнению любого javascript, вот мой первый взлом:
<html>
<head>
<script type="text/javascript" src="/js/jquery.min.js"></script>
</head>
<body>
<preventjs>
<div id="user-content-area">
<!-- evil user content -->
<p onclick="alert('evil stuff');">I'm not evil, promise.</p>
<p onmouseover="alert('evil stuff');">Neither am I.</p>
<!-- end user content -->
</div>
</preventjs>
<script type="text/javascript">
// <preventjs> tags are supposed to prevent any javascript events
// but this does not unbined DOM events
$("preventjs").find("*").unbind();
</script>
</body>
</html>
Я пытался использовать jQuery, чтобы отменить привязку всего, но он не отменяет связывание событий вDOM, это именно то, что я пытаюсь сделать.Можно ли отменить привязку всех событий для элемента DOM?