7 Stimmen

<%: %> vs. Microsoft die Anti XSS-Bibliothek

Mit .net 4 gibt es eine neue <%: %>-Skript, das wie <%= %> ist, aber eine HTML-Kodierung vornimmt. Die Verwendung dieser neuen Syntax wird befürwortet.

Meine Frage ist, ob <%: %> besser oder genauso gut vor XSS schützen wie die Verwendung der Microsoft Anti XSS-Bibliothek?

Ein Sicherheitsbeauftragter von Microsoft hat mir einmal gesagt, ich solle nie einfach HTML Encode verwenden, da es nicht sehr gut schützt, und ich solle immer die Anti XSS-Bibliothek (oder eine andere Bibliothek) verwenden. Gilt das immer noch für <%: %>? Oder kann ich getrost <%: %> verwenden, weil ich weiß, dass es meine Anwendung vor XSS schützen wird, wie die Leute sagen?

9voto

Russ Cam Punkte 120837

HttpUtility.HtmlEncode verwendet einen Blacklist-Ansatz (Prinzip der Ausschlüsse) zur Verschlüsselung, der potentiell die Tür für neu entdeckte Exploits in der Zukunft offen lässt. Die Anti-XSS-Bibliothek (jetzt als Web Protection Library bekannt und enthält auch Code zur Eindämmung von SQL-Injektionen) verwendet einen Whitelist-Ansatz (Prinzip der Einschlüsse), der die Tür ein wenig weiter schließt und bessere Sicherheit bieten sollte.

<%: ... %> ist nur eine Abkürzung für <%= Server.HtmlEncode(string) %> und bietet somit die Sicherheit des in Ihrer Anwendung verwendeten Encoders.

Sie können jeden beliebigen Encoder mit dem neuen <%: ... %> Syntax und Phil Haack hat einen großartigen Beitrag über Einbinden der Anti-Xss-Bibliothek als Standard-Encoder . Beachten Sie, dass die Anti-XSS-Bibliothek 3.1 derzeit mittleres Vertrauen erfordert, um ausgeführt werden zu können.

1voto

SLaks Punkte 832502

Die neue Syntax sollte nur verwendet werden, um Rohtextinhalte in HTML zu entschlüsseln. EDITAR : und Attribute.

Para Attribute, Javascript und anderen Kontexten sollten Sie dennoch die Anti-XSS-Bibliothek verwenden,

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X