- PVSM.RU - https://www.pvsm.ru -
Недавно сидя на диване, я решил поиграться с MutationObserver [1]. Это достаточно знатная фича, с помощью которой можно слушать DOM дерево. Сейчас достаточно распространена.
Так же с помощью MutationObserver можно не только лишь слушать, но и по факту предотвращать изменения DOM дерева. Подумав об этом, я сделал библиотечку, которая может блокировать ненужные теги и атрибуты, которыми вы все равно не стали пользоваться.
Выглядит это вот так [2]:
{
"tagsType": "blacklist",
"tags": [
"script"
],
"attributesType": "blacklist",
"attributes": {
"*": ["onerror"]
}
}
С помощью манифеста мы для примера отрезали все теги script, и все атрибуты onerror, которые не должно выйти добавить после запуска strict_dom. Т.е. по сути так можно вырезать многие потенциальные XSS уязвимости на сайте (в данном варианте не особо на самом деле), или отучить себя и свою команду использовать какие-либо устарелые HTML теги и атрибуты.
Манифест может иметь следующие параметры:
Собственно, все это работает через MutationObserver, а код можете подглядеть тут [3]
Автор: mitinsvyat
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/260682
Ссылки в тексте:
[1] MutationObserver: https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
[2] так: https://wasiher.github.io/strict_dom/
[3] тут: https://github.com/wasiher/strict_dom.js/
[4] Источник: https://habrahabr.ru/post/333564/
Нажмите здесь для печати.