Задать вопрос

Как осуществлять очистку пользовательского html?

Здравствуйте!

Пользователь может редактировать статью. Далее сохраненный код отсылается на сервер и, соответственно, обрабатывается. Будет ли достаточно функции strip_tags для очистки от script и прочих не нужных тегов (для защиты от XSS и других ЗЛОштучек)?

Спасибо.
  • Вопрос задан
  • 4283 просмотра
Подписаться 5 Оценить Комментировать
Решения вопроса 2
@link_irk
strip_tags вырежет все теги из строки (включая пользовательскую разметку, если таковая имеется). Если данные будут добавляться в БД, то перед выполнением запрос не лишним будет прогнать через функцию mysql_real_escape_string, которая очистит его и подготовит к безопасному выполнению. Но лучше вынести методы работы с БД в отдельный класс и работать через него. Таким образом вы не упустите в коде ни один запрос. Также уделите внимание валидации полей форм и GET, POST данных, поступающих в скрипт.
Ответ написан
nazarpc
@nazarpc
Open Source enthusiast
Я для себя писал функцию, которая позволяет использовать стили, html форматирование, но не пускает скрипты и прочие хитрые штучки, можете воспользоваться:
https://github.com/nazar-pc/Useful-PHP-Functions/b...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 4
@jslby
www.php.net/manual/ru/function.strip-tags.php
Эта функция пытается возвратить строку str, из которой удалены все NUL-байты, HTML и PHP теги.
Ответ написан
@gro
В общем случае достаточно escape_string вашей базы и htmlspecialchars при выводе.

Во всех других случаях необходим мозг и понимание того что вообще происходит.
Разберитесь что такое XSS и всё остальное и как они происходят.
Ответ написан
я использую для записи в бд следующую функцию
$bio = mysql_real_escape_string(trim($_GET['bio']));

а для вывода с бд
$bio = preg_replace("/[\r\n]+/", "</p><p>", $row ['about']);

мне кажется этого достаточно
Ответ написан
@remaora
Если Вы хотите убрать из текста статьи все теги, кроме разрешённых, то, как сказали другие, strip_tags вполне достаточно.
Если же Вам требуется что-то более сложное (например, почистить HTML от "грязных" тегов и атрибутов таким образом, чтобы отредактированная статья при выводе не поломала вёрстку сайта), тогда стоит обратить внимание на HTMLPurifier.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы