我们如何通过URL / HTML编码消毒潜在的危险角色& (<>“; /)在服务器端,我在jsp页面中使用encodeURI()和escape()在客户端编码,我在我的java文件中使用URLEncoder.encode()到handel服务器端但是它不编码。
答案 0 :(得分:1)
String needsEncodingPart = "?!@#$%^&*() <>/\"'[]{}\"";
String baseURL = "http://url:80/test";
String encodedPart = URLEncoder.encode(needsEncodingPart,"UTF-8").replace("+", "%20");
System.out.println(baseURL + "/" + encodedPart);
第二种方式是使用java.net.URI
URL url = new URL("http://url:80/test/test1?!@#$%^&*() <>/\"'[]{}\"");
URI uri = null;
uri = new URI(url.getProtocol(), url.getHost() + ":" + url.getPort(), url.getPath(), url.getQuery(), null);
uri.toString()将返回编码的url。但是遇到#遇到的情况可能会在编码时产生一些问题。
谢谢, 拉夫