2016-07-29 26 views
1

我正在使用spring 3.1.1。我正在嘗試對傳入的請求參數進行HTML編碼。對我的JSP頁面的調用可以由用戶通過命令行工具或Web瀏覽器傳遞URL來手動完成。什麼是在JSP頁面上強制執行HTML編碼的最佳方式,特別是在直接從Web瀏覽器URL調用時的最佳方式

讓我們假設我有一個請求參數如下請求作爲語言 http://localhost:8080/testdomain/createaccount.do?language=eng

我想HTML編碼「語言」請求參數。我已經將web.xml中的上下文參數設置爲html編碼。

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

問題

  1. 在web.xml中指定defaultHtmlEscape不越獄的請求參數的HTML元素。似乎沒有工作?任何關於如何使這項工作的建議?

  2. 如果我在控制器內部調用下面的內容?這將甚至有助於解析必須已經完成?

    HtmlUtils.htmlEscape(用request.getParameter(語言))」

  3. 在該頁面的特定彈性控制,我該如何確保讀取請求參數之前,HTML編碼?

  4. 我想明白的地方,我可以在應用程序級別,並在頁面/控制器級別強制執行HTML編碼選項

回答

0

該網站的描述符屬性將只適用於Spring標籤使用:?

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

使用HtmlUtils.htmlEscape

您需要的時候請確保您免受XSS保護僅僅是一個@RestController

從最好的網址讀取參數使用@RequestParam

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

檢查https://spring.io/guides/gs/rest-service/

+0

1.不幸的是,我工作的應用程序不使用註釋。那麼我怎樣才能解決這個問題,而無需註釋。 2.我試圖解決漏洞問題,所以可以直接從瀏覽器調用URL或者使用類似'curl'的工具。所以請求參數可能不是來自表單輸入。 – megan

+0

Spring MVC版本?我認爲這更像是一個設計問題。如果您根據要求更新您的問題,您可能會得到更好的建議和可能的方向。 –

+0

3.1.1春季版。對不起,以爲我已經在原文中指定了它,但看起來版本號只是部分發布,因爲第一行被錯誤地刪除了。 – megan

相關問題