2010-08-25 4 views
1

J'utilise un codeur de sortie anti XSS similaire à celui Htat Phil Hacck a présenté hereComment ignorer les balises meta lors de l'utilisation de l'AntiXssOutputEncoder?

Unfortuantely, il fonctionne rampant sur mon Site.master et l'encrassement les méta-tags comme ceci:

<meta name="robots" content="all,&#32;follow" /> 

Et Site.master il est écrit simplement:

<meta name="robots" content="all, follow" /> 

Quelle serait la sortie correcte dans des circonstances normales, mais je préférerais être en mesure de sauter les balises meta dans le Site.master.

Existe-t-il un moyen de le faire lors de l'exécution de votre propre HttpEncoder?

+0

Comment générez-vous cette balise dans votre balisage? –

+0

Ce n'est pas généré - c'est écrit dans le site.master – jmcd

+2

Alors, comment l'encodeur AntiXSS est-il impliqué? Si vous avez '<%: %>' dans votre site.master ... pourriez-vous simplement le remplacer par '<%= %>'? – Charlino

Répondre

0

Je ne pense pas que vous ayez cette information, mais vous pourriez essayer les valeurs autorisées de la liste blanche, si vous n'avez pas beaucoup de balises META comme ça.

Une version simplifiée serait:

protected override void HtmlAttributeEncode(string value, TextWriter output) 
{ 
    if (value != "all,&#32;follow") 
    { 
     output.Write(AntiXss.HtmlAttributeEncode(value)); 
    } 
    else 
    { 
     output.Write(value); 
    } 
} 

Pas idéal, mais pour autant que je peux voir, HttpEncoder ne vous pas la main contexte.

Questions connexes