[英]Manipulate @FormParam for sanitizing XSS values
我使用@FormParam
從jsr311-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 API ( JSR 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.