Se stai solo provando a convertire i link, l'opzione più sicura è usare l'igienizzazione e una whitelist. Fondamentalmente un elenco di valori consentiti, che impedisce di passare qualsiasi cosa tu non specifichi. Utilizzare sempre una funzione di sanitizzazione affidabile e una whitelist, non ti consiglio di crearne una nuova a meno che tu non sappia cosa stai facendo. Vedi una pagina come la seguente per riferimento (assicurati che tutta la sanificazione / convalida avvenga sul lato server, ovviamente):
link
Penso che la prospettiva di far usare ai tuoi utenti un linguaggio di markup sia un buon suggerimento per XSS iniettato tag, ma in realtà non risolve il problema dell'XSS concat'd XSS.
Trovo che la risposta del precedente rispondente essenzialmente dicesse che dovresti solo prepararti ad attacchi semplici perché altrimenti stai "scendendo nella tana del coniglio" è spericolato e ingenuo, perché non mettiamo semplicemente un semplice lucchetto sui caveau delle banche in tal caso?