Pergunta

Como faço para limitar os tipos de HTML que uma lata de entrada do usuário em uma caixa de texto? Estou correndo um pequeno fórum usando algum software personalizado que eu estou testes beta, mas eu preciso saber como limitar a entrada HTML. Alguma sugestão?

Foi útil?

Solução

i sugiro uma abordagem ligeiramente alternativa:

  • não filtrar dados de usuário de entrada (além da prevenção de injeção de SQL). dados do usuário deve ser mantido o mais puro possível.
  • filtrar todos os dados de saída do banco de dados, este é o lugar onde coisas como tag de decapagem, etc .. deve acontecer

manter limpo os dados do usuário permite-lhe mais flexibilidade na forma como ele é exibido. filtrar todos os dados de saída é um bom hábito de entrar (ao longo do meme dados nunca confiança).

Outras dicas

Você fez não estado que o fórum foi construído com, mas se for PHP, confira:

http://htmlpurifier.org/

Biblioteca Características: Whitelist, remoção, bem formado, aninhamento, Atributos, XSS seguro, Padrões segura

Uma vez que o texto é submetido, você poderia tirar quaisquer / todas as tags que não correspondem ao seu conjunto predefinido usando um regex em PHP.

Seria algo parecido com o seguinte:

find open tag (<)
if contents != allowed tag, remove tag (from <..>)
  1. analisar a entrada fornece e tira fora todas as tags HTML que não correspondem exatamente a lista que você está permitindo. Esta pode ser uma regex complexa, ou você pode fazer uma iteração stateful através do char [] da cadeia de entrada construir a cadeia de entrada permitida e descascar atributos indesejados em tags como img.

  2. Use um sistema de código diferente (BBCode, Markdown)

  3. Encontre algum código on-line que já faz isso, para usar como uma base para a sua implementação. Por exemplo Slashcode deve executar esta, assim que olhar para a sua implementação no Perl e usar as expressões regulares (que eu assumo estão lá)

Independentemente do que você usa, certifique-se de ser informado de que tipo de conteúdo HTML pode ser perigoso.

por exemplo. a tag

scroll top