Penso che rimuovere qualsiasi tag HTML dall'input ti darà qualcosa di abbastanza sicuro, a meno che qualcuno non trovi un modo per iniettare alcuni dati davvero incasinati in Markdown, generando un output ancora più incasinato ^^
Tuttavia, ecco due cose che mi vengono in mente:
Il primo : strip_tags
non è una funzione miracolosa :ha dei difetti...
Ad esempio, rimuoverà tutto dopo il '<', in una situazione come questa :
$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));
L'output che ottengo è:
string '10 appels is ' (length=13)
Il che non è così bello per i tuoi utenti :-(
Secondo : Un giorno o l'altro, potresti voler consentire alcuni tag/attributi HTML; oppure, anche oggi, potresti voler essere sicuro che Markdown non generi alcuni tag/attributi HTML.
Potrebbe interessarti qualcosa come HTMLPurifier :ti permette di specificare quali tag e attributi devono essere mantenuti e filtra una stringa, in modo che rimangano solo quelli.
Genera anche codice HTML valido -- che è sempre bello ;-)