簡體   English   中英

操縱@FormParam清理XSS值

[英]Manipulate @FormParam for sanitizing XSS values

我使用@FormParamjsr311-api-1.0.jar在舊的項目與新澤西1.0.3。 有沒有一種方法可以添加一個過濾器來清理和更改我在應用程序中使用的所有@FormParam

示例代碼如下:

@POST
@Path("myMethod")
public String myMethod(@FormParam("data") String data) {
    // Need to change the value of this data to clean XSS
    // Code to save data into database
}

由於JAX-RS 1.0 APIJSR 311 )不提供過濾器或攔截器,因此您可以考慮對資源方法中的輸入進行清理。

為此,您可以考慮使用jsoup 這是文檔提供的示例:

String unsafe = 
  "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
String safe = Jsoup.clean(unsafe, Whitelist.basic());

OWASP Java HTML Sanitizer也可以解決問題。 這是文檔提供的示例:

PolicyFactory policy = new HtmlPolicyBuilder()
    .allowElements("a")
    .allowUrlProtocols("https")
    .allowAttributes("href").onElements("a")
    .requireRelNofollowOnLinks()
    .toFactory();
String safeHTML = policy.sanitize(untrustedHTML);

如果您願意使用Jersey API,則值得一提的是Jersey 1.x提供了ContainerRequestFilter接口,您可以實現和修改請求的狀態。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM