PHP экранирование js кода в тексте HTML
Например с чужого сервера приходит нам html - нужно его экранировать от js кода, чтобы потом вставить в таком же виде на сайт. Как это правильно сделать на php? Есть ли встроенная функция? Помимо тегов <scrip></script> в HTML элемент может быть встроен тег onload="", onerror="", что еще может послужить xss атаке, как это экранировать?
Ответы (1 шт):
Тут надо от обратного идти. Надо создать свой whitelist тегов и атрибутов, всё лишнее удалять.
В разных CMS видел разные реализации, у всех свои.
https://github.com/AlexanderGrom/php-qevix тут что-то похожее есть. Указываете теги и атрибуты, которые точно безопасны и не беспокойтесь.
Если держать список опасных тегов и атрибутов, то есть шанс что-то забыть и это будет фатальная ошибка. Могут появиться новые теги и атрибуты опасные.
А в случае с whitelist, всё безопасно. Если какие-то теги безопасные сразу не добавили, их можно всегда добавить без ущерба.