Я думаю, что удаление любого HTML-тега из входных данных даст вам что-то довольно безопасное - за исключением случаев, когда кто-то найдет способ внедрить некоторые действительно испорченные данные в Markdown, заставив его генерировать еще более испорченный вывод ^^
Тем не менее, вот две вещи, которые приходят мне на ум:
Первый: strip_tags
- не чудодейственная функция: у него есть некоторые недостатки ...
Например, он удалит все после '<', в такой ситуации: </p>
$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));
Вывод, который я получаю:
string '10 appels is ' (length=13)
Что не очень приятно для ваших пользователей : - (
Второй: В тот или иной день вы можете разрешить некоторые HTML-теги / атрибуты; или даже сегодня вы можете быть уверены, что Markdown не генерирует некоторые теги / атрибуты HTML.
Вас может заинтересовать что-то вроде HTMLPurifier : оно позволяет вам указать, какие теги и атрибуты должны быть сохранены, и фильтрует строку, чтобы остались только те.
Он также генерирует действительный код HTML - что всегда приятно ; -)