这种Java方法是否有利于防止跨站点脚本?它是在Jetty中运行的Servlet。输入来自用户的HTTP请求(我们需要处理URI,参数值,标题值和正文),我们清理它,输出是清理输入的反映,作为用户浏览器的HTTP响应。
String clean(String tainted) {
String cleaned = "";
for (int i = 0; i < tainted.length(); i++) {
char c = tainted.charAt(i);
switch (c) {
case '&': cleaned += "&"; break;
case '<': cleaned += "<"; break;
case '>': cleaned += ">"; break;
default:
if (Character.isISOControl(c) && !Character.isWhitespace(c)) {
cleaned += '?';
} else {
cleaned += c;
}
}
}
return cleaned;
}
String doStuff(String clean) {...}
return "<!DOCTYPE html><html><body>" + doStuff(clean(userInput)) + "</body></html>";
答案 0 :(得分:2)
安全是一场艰难的战斗,最好留给那些在这些问题上保持最新工作的人。 OWASP提供了一个Java编码库,可以为您处理这些问题(您可以通过快速Google搜索找到它)。