Remover ataques XSS enquanto ainda permite html?
Ok, agora eu tenho um dilema, eu preciso permitir que os usuários insiram HTML bruto, mas também bloquear todos os JS - não apenas tags de script, mas a partir do href etc. no momento, tudo que eu sei é
htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
Mas isso também converte tags válidas em caracteres codificados. Se eu uso striptags, também não funciona comoremove Tag! (Eu sei que você pode permitir tags, mas a coisa é se eu permitir que qualquer tag, como<a></a>
as pessoas podem adicionar JS malicioso a ele.
Existe alguma coisa que eu possa fazer para permitir tags html, mas sem a injeção de XSS? Eu planejei uma função:xss()
e configurei o template do meu site com isso. Ele retorna a string de escape. (Eu só preciso de ajuda comescapando :))
Obrigado!