Alternative zu c:aus, um zu verhindern, XSS

Arbeite ich auf, um cross-site-scripting (XSS) in einer Java -, Spring-basierte Web-Anwendung. Ich habe bereits ein servlet-filter ähnlich wie in diesem Beispiel http://greatwebguy.com/programming/java/simple-cross-site-scripting-xss-servlet-filter/, die bereinigt werden alle Eingaben in der Anwendung. Als zusätzliche Sicherheitsmaßnahme würde ich auch gerne desinfizieren Sie alle Ausgaben der Anwendung in allen JSPs. Ich habe einige der Forschung getan, um zu sehen, wie dies getan werden könnte, und fand zwei komplementäre Möglichkeiten.

Einer von Ihnen ist der Einsatz von Spring defaultHtmlEscape Attribut. Dies war sehr einfach zu implementieren (ein paar Zeilen in web.xml), und es funktioniert Super, wenn Ihr Ausgang wird über eine Frühlings-tags (ie: Meldung-oder form-tags). Die andere Möglichkeit, die ich gefunden habe, ist nicht direkt in EL-Ausdrücken wie ${...} und stattdessen <c:out value="${...}" />

Dass der zweite Ansatz funktioniert perfekt, jedoch aufgrund der Größe der Anwendung, ich arbeite auf (200+ JSP-Dateien). Es ist eine sehr langwierige Aufgabe zu haben, zum alle zu ersetzen unsachgemäße Nutzung des EL-Ausdrücke mit dem c:out tag. Auch wäre es eine langwierige Aufgabe in der Zukunft sicherstellen, dass alle Entwickler an diese Konvention verwenden Sie die c:out tag (nicht zu erwähnen, wie viel mehr der code nicht lesbar wäre).

Gibt es alternativen Ausweg aus der Ausgabe von EL-Ausdrücken erfordern würde, dass weniger code-änderungen?

InformationsquelleAutor ggreiner | 2010-12-16
Schreibe einen Kommentar