Я придумал это решение.
Давайте предположим, что мы хотим добавить html к элементу с небезопасными данными от пользователя или базы данных.
var unsafe = 'some unsafe data like <script>alert("oops");</script> here';
var html = '';
html += '<div>';
html += '<p>' + unsafe + '</p>';
html += '</div>';
element.html(html);
Это небезопасно против атак XSS. Теперь добавьте это.
$(document.createElement('div')).html(unsafe).text();
Так оно и есть
var unsafe = 'some unsafe data like <script>alert("oops");</script> here';
var html = '';
html += '<div>';
html += '<p>' + $(document.createElement('div')).html(unsafe).text(); + '</p>';
html += '</div>';
element.html(html);
Для меня это намного проще, чем использовать .replace()
, и это удалится !!! все возможные теги HTML (я надеюсь).