Чтобы быть на 100% безопасным, используйте HTMLPurifier дважды. Перед сохранением HTML в БД и перед выводом его на экран.
Огромным недостатком такого решения является производительность. HTMLPurifier очень медленный при фильтрации HTML, и вы можете столкнуться с более длительным временем обработки ваших страниц.
С вами должно быть все в порядке, если вы выполняете только 1-2 фильтрации перед выводом чего-либо на экран, но если вы делаете 10 фильтраций на запрос, как мы, мы решили не использовать HTMLPurifier при выводе большого количества текстов для сохранения.
HTMLPurifier занимал 60% времени обработки на запрос, и вместо этого мы хотели добиться меньшего времени отклика и более высокого UX.
Это зависит от вашей ситуации. Если вы можете позволить себе использовать HTMLPurifier перед выводом, сделайте это - это лучше, и вы всегда можете контролировать, какие теги вы хотите разрешить (для нового и даже для старого контента, хранящегося в вашей базе данных).