Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O Markdown (com strip_tags) é suficiente para interromper os ataques XSS?


Acho que remover qualquer tag HTML da entrada fornecerá algo bastante seguro - exceto se alguém encontrar uma maneira de injetar alguns dados realmente confusos no Markdown, gerando uma saída ainda mais confusa ^^

Ainda assim, aqui estão duas coisas que me vêm à mente:

Primeiro: strip_tags não é uma função milagrosa :ela tem algumas falhas...
Por exemplo, ela removerá tudo depois do '<', em uma situação como esta:
$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));

A saída que recebo é:
string '10 appels is ' (length=13)

O que não é tão bom para seus usuários :-(


Segundo: Um dia ou outro, você pode querer permitir algumas tags/atributos HTML; ou, ainda hoje, você pode querer ter certeza de que o Markdown não gera algumas tags/atributos HTML.

Você pode estar interessado em algo como HTMLPurifier :permite especificar quais tags e atributos devem ser mantidos e filtra uma string, para que apenas esses permaneçam.

Ele também gera código HTML válido -- o que é sempre bom ;-)