这个Java代码是否足以防范XSS?

时间:2018-02-15 21:45:15

标签: java security servlets xss

这种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 += "&amp;"; break;
            case '<': cleaned += "&lt;"; break;
            case '>': cleaned += "&gt;"; 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>";

1 个答案:

答案 0 :(得分:2)

安全是一场艰难的战斗,最好留给那些在这些问题上保持最新工作的人。 OWASP提供了一个Java编码库,可以为您处理这些问题(您可以通过快速Google搜索找到它)。