Pergunta

Para a minha entidade pós i armazenar HTML e remarcação no banco de dados (HTML é convertido de remarcação). HTML é para renderização na página e remarcação para a edição de capacidade (com WMD). I higienizar HTML antes de armazenar a db. A pergunta é: devo higienizar remarcação também? ou é XSS-seguro se eu só passá-lo para ADM-editor?

Foi útil?

Solução

Markdown pode conter HTML arbitrário; esta é expressamente permitida. Portanto, você deve higienizar-lo também, ou pelo menos higienizar o resultado da conversão para HTML, antes de enviar para os clientes da Web.

Eu me lembro que um dos explora possível com SO nos primeiros dias é que você pode colocar conteúdo JS no Markdown, e quem editou o seu artigo iria desencadear esses scripts na visualização. Eu não sei se isso é ainda fixo.

Outras dicas

Tenho notado que você "sanitize HTML antes de armazenar a DB" e falar de XSS-safe na frase seguinte. Essas são duas facetas diferentes de validação de entrada, e você não deve misturá-las, e endereço tanto em seu design:

  • Você deve seguramente inserir qualquer entrada do usuário no banco de dados, ou seja, certifique-se a entrada é adequadamente escape (mysql_real_escape_string, procedimentos armazenados, bibliotecas ORM, etc.)

  • Você deve com segurança saída para HTML / JS (incluindo entrada para WMD), removendo ou escapar quaisquer sequências que podem ser transformadas em XSS explora e outras coisas desagradáveis.

Quanto à questão, eu concordo com o Chris - desde Markdown pode incluir HTML, deve ser higienizado

.

Apenas uma adição:
Esta questão veio de usar WMD

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top