Использование BBCodes ... Разобрать HTML или удалить его вообще? (XSS / РНР) - PullRequest
2 голосов
/ 16 сентября 2011

Я создаю мини-форум на PHP и хочу разрешить пользователям сообщения с ограниченным форматированием текста и встраиванием изображений, но я хочу сделать это безопасно (в XSS), и мне было интересно, каков наиболее оптимальный подходниже.

1) Уберите все теги HTML из пользовательского ввода и замените элементы управления редактора WYSIWYG на BBCode.Достаточно ли для этого strip_tags?

2) Разрешить ввод HTML через WYSIWYG, но использовать анализатор для преобразования вывода из HTML в BBCode.Кто-нибудь может порекомендовать безопасный парсер BBCode для этого?

Любые другие идеи приветствуются.

1 Ответ

4 голосов
/ 16 сентября 2011

Вам не нужно анализировать или удалять HTML, чтобы быть в безопасности. Просто пропустите все через htmlspecialchars, прежде чем распечатать, и вы в безопасности.

Кроме того, это ортогонально использованию BBcode. Вы можете сделать так, чтобы ваш редактор генерировал BBcode для форматирования, и htmlspecialchars никак не будет связываться с ним.

...