Здравствуйте, как мне защитить сайт от XSS внедрений, если мне нужно вывести данные из бд со всеми тегами HTML (<b>, <i> и т.д.), но при этом запретить внедрять JS код. strip_tags в данном случае не подходит.
Ну в твоем случае если ты хочешь оставить теги, то тебе как минимум нужно разобраться с тегами <script></script> Например так: PHP: $html = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $html); Ну и еще смотреть обработчики событий в тегах.
А если например имеется форма ckeditor, как обойтись? Просто я видел, у людей есть большие class-ы для защиты от xss такого рода
Я тебе конкретный класс конечно не предоставлю но есть общая практика предотвращения XSS на довольно известном в ИБ кругах ресурсе OWASP. https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet Что же касается ckeditor и почему люди пишут классы для предотвращения XSS.Все по сути что есть на стороне пользователя - можно подрезать,подредактировать или вообще переписать как тебе нужно,поэтому говорить о какой либо безопасности встроенной в js не имеет смысла.И исходя из этого в любом случае на серверной стороне нужно проверять все.Поэтому исходя из своих потребностей и руководствуясь данным материалом - можешь вполне набросать свой класс под свои нужды.
Простите за долгое отсутствие, класс необходимо писать со всеми исключениями, например таких как запрещенных команд: <script>something</script> и так каждый аргумент js? Иль есть более просто способ? Каким образом можно внедрить вредоносный скрипт в onload или onclick? И как грамотно защитить? --- Добавлено --- И еще, мне заменять все <> на < и > ?
1. Фильтровать нужно любые входные параметры. Вот готовое решение https://github.com/voku/anti-xss 2. Код (Text): <a href="http://example.com/" onclick="alert('XSS!')" target="_blank">привет</a>
Слушайте, у меня есть некоторая проблема. Я подключаю файл AntiXSS.php через обычный include, однако, при присвоении переменной выдает ошибку: Fatal error: Class 'AntiXSS' not found in D:\Server\OpenServer\domains\asdplatform.ru\test.php on line 3 Почему?
логично предположить что неправильно подключаешь файл скинь полный путь где лежит класс и строку подключения и желательно код класса
Я использовал, однако все равно ничего не работает. --- Добавлено --- --- Добавлено --- Да это понятно, путь верен. Перепроверил все. Класс вот. --- Добавлено --- Возможно я не понимаю, как работает Composer...