2016-07-29 30 views
1

Ich benutze Feder 3.1.1. Ich versuche, meine eingehenden Anfrage-Parameter HTML zu codieren. Der Aufruf meiner JSP-Seite kann manuell erfolgen, indem ein Benutzer eine URL von einem Befehlszeilentool oder Webbrowser übergibt.Was ist der beste Weg, um HTML-Codierung auf einer JSP-Seite erzwingen, vor allem, wenn direkt aus Web-Browser URL

lässt vermuten, ich eine Anfrage, wie unten mit Anforderungsparameter als Sprache haben http://localhost:8080/testdomain/createaccount.do?language=eng

ich HTML wollen die ‚Sprache‘ Anforderungsparameter codieren. Ich habe bereits einen Context-Parameter in web.xml auf HTML-Encoding gesetzt.

<context-param> 
    <param-name>defaultHtmlEscape</param-name> 
    <param-value>true</param-value> 
</context-param> 

Fragen

  1. die defaultHtmlEscape im web.xml die HTML-Elemente im Anforderungsparameter nicht entgehen angeben. Scheint nicht zu funktionieren? Irgendwelche Vorschläge, wie man das funktioniert?

  2. Wenn ich die unten in der Steuerung anrufen? Würde dies sogar helfen, da das Parsing bereits durchgeführt worden sein muss?

    HtmlUtils.htmlEscape (request.getParameter (Sprache))“

  3. Auf besonderen Feder-Controller für diese Seite, wie ich HTML-Codierung kann sicherstellen, bevor die Anforderung Parameter lesen?

  4. Ich möchte verstehen Optionen, wo ich kann hTML-Codierung auf der Anwendungsebene als auch auf der Seite/Controller-Ebene

Antwort

0

die Web-Descriptor Eigenschaft gilt Tags Frühling nur erzwingen Verwendung:?.

<form:input path="/my/path" htmlEscape="true" /> 

Stellen Sie sicher, geschützt gegen XSS werden, wenn HtmlUtils.htmlEscape

mit Was Sie brauchen, ist nur ein @RestController

Um einen Parameter aus der URL zu lesen ist es besser zu nutzen @RequestParam

public @ResponseBody String myRequest(@RequestParam("language") String language) { 
    System.out.println("Language is: "+ language); 
} 

Prüfen https://spring.io/guides/gs/rest-service/

+0

1. Leider, Die App, an der ich arbeite, verwendet keine Anmerkungen. Wie kann ich das ohne Anmerkungen ansprechen? 2. Ich versuche, ein Problem mit der Sicherheitslücke zu beheben, also kann die URL direkt vom Browser aus aufgerufen werden oder mit einem Tool wie "curl" verwendet werden. Der Anforderungsparameter stammt möglicherweise nicht von einer Formulareingabe. – megan

+0

Feder MVC Version? Ich denke, das ist eher ein Designproblem. Wenn Sie Ihre Frage mit den Anforderungen aktualisieren, erhalten Sie möglicherweise bessere Vorschläge und mögliche Anweisungen. –

+0

3.1.1 Federversion. Es tut mir leid, dass ich es im ursprünglichen Post angegeben hatte, aber es sieht so aus, als ob die Versionsnummer nur teilweise gepostet wurde, da die erste Zeile versehentlich gelöscht wurde. – megan