Modificando o htmlpurifier permitiu tags para esta marcação

As configurações do meu purificador html agora permitem apenas essas tags

$configuration->set('HTML.Allowed', 'p,ul,ol,li'); 

Eu quero permitir indentação de listas e meu editor usa esse html

 

Como devo alterar as tags do meu HTMLPurifier Allowed? Eu pensei em adicionar style , mas acho que seria melhor especificar exatamente qual estilo é permitido, o que neste caso seria margin-left . Qual é o caminho certo para mudar o HTML. Para este caso?

Permita os atributos de estilo e, em seguida, modifique os atributos CSS permitidos usando % CSS.AllowedProperties .

  $ configuration-> set ('HTML.Allowed', 'p, ul [style], ol, li');
 $ configuration-> set ('CSS.AllowedProperties', 'margin-left'); 

PS Estou surpreso com a quantidade de pessoas que não entendem como o HTML Purifier funciona.

No mínimo, você quer permitir atributos para tags que o purificador suporte, assim:

 $configuration->set('HTML.Allowed', 'p,ul[style],ol,li'); 

Não tenho a certeza se você também pode permitir / restringir o conteúdo dos atributos.

Sugiro que você não permita atributos. Permitir que o atributo de estilo cause uma vulnerabilidade XSS no IE7 (e possivelmente outras versões, não tenho certeza no momento), mas o ponto é, é muito perigoso. Você deve analisar o HTML você mesmo e replace os usuários com cordas constantes em seu código. Permitir o HTML é uma prática realmente perigosa. Para uma melhor segurança, você pode tentar algo como markdown ou criar sua própria linguagem de marcação simples (como o BBcode) para que seus usuários usem.

Como a SamT disse sobre a vulnerabilidade do XSS no IE7, tenha cuidado ao permitir o access ao atributo de estilo por causa de um movimento genial da Microsoft que permitiu o uso de javascript no CSS por meio de “expressão ()” (também conhecido como Propriedades Dinâmicas). http://msdn.microsoft.com/en-us/library/ms537634(v=vs.85).aspx

Quanto à sua remoção no IE8, onde a Microsoft admite descaradamente que expôs os usuários a vulnerabilidades adicionais: http://blogs.msdn.com/b/ie/archive/2008/10/16/ending-expressions.aspx

exemplo:

 blah 

O acima exibiria uma checkbox de alerta de JavaScript no MSIE 5 a 7. De acordo com os documentos no MSDN, ele também deve funcionar no IE8 quando o modo Quirks estiver ativo. Também pode ocorrer no IE9 no modo peculiar, mas não tenho certeza.

Se for possível, evite permitir o access ao atributo de estilo. Você nunca sabe quando outro navegador futuro obterá a idéia genial para adicionar no mesmo erro que a Microsoft fez.