2016-04-19 8 views
0

Ich verwende derzeit die owasp java library auf einem Back-End-Dienst, um HTML vom Client gesäubert zu sanieren. Die owasp-Java-Bibliothek verfügt über eine CSS-Whitelist mit CSS-Regeln, die innerhalb eines beliebigen Stil-Tags innerhalb von HTML-Elementen zulässig ist. Sie können diese Whitelist here finden.Warum ist die css-Eigenschaft "display" nicht in der Standard-Whitelist für die owasp-Java-Bibliothek?

Eine Sache, die ich über diese Whitelist bemerkte, ist, dass die Eigenschaft display weggelassen wird. Das bedeutet, dass, wenn ich HTML-Code wie folgt zu erstellen:

<div style="margin-left:0px;display:none;"></div> 

dann der HTML Sanitizer mit der Standard-Styling Weißen Liste wird die Anzeige Regel Streifen aus und die HTML-Datei auf dem Server gespeichert werden:

<div style="margin-left:0px;"></div> 

Warum ist die display-Eigenschaft standardmäßig nicht in der weißen Liste?

Antwort

1

Weil dann die anderen weißen gelistete Arten würden aufgrund des Elements nicht funktionieren nicht bei allen

UPDATE angezeigt wird

display hat viele seltsame Grenzfälle, die das Layout beeinflussen in komisch Wege.

inline, block und inline-block sind wahrscheinlich in den meisten Kontexten sicher.

fixed ist wahrscheinlich in keiner sicher.

table und andere sind wahrscheinlich zweifelhaft, da es Möglichkeiten geben kann, visuelle Eindämmung zu brechen.

Auch block und inline block können für die visuelle Rückhaltung brechen Beispiel mit einer Politik, die nur Inline-Tags erlaubt, wenn der Einbettungs die width des Behälters fixiert und nicht overflow nicht verstecken.

Source

+1

Was ist, wenn Sie irgendwelche anderen Eigenschaftswerte müssen: "inline, inline-block, block"? –

+0

Was wäre, wenn es Display wäre: Inline-Block statt Display: keine? Der owasp Desinfizierer würde es immer noch herausnehmen – idungotnosn

+0

Siehe aktualisierte Antwort – dippas