Это довольно сложно сделать, поскольку есть много странных и хитрых способов проникнуть в JavaScript.
HTMLPurifier имеет довольно сложный синтаксический анализ, чтобы отфильтровать всепотенциально небезопасный HTML, если вам необходимо разрешить ввод HTML.
Однако, как правило, вам даже не следует пытаться это делать, и просто всегда экранируйте строку .
В PHP это:
echo htmlspecialchars($string);
В JS вы можете использовать document.createTextNode()
или эквивалент jQuery $(el).text()
для безопасной вставки текста в DOM (эти два метода не требуют экранирования).