防止 JSP 中的 XSS 攻击

Mar*_*dez 1 security xss jsp owasp esapi

我想防止我的 web 应用程序中的 XSS 攻击,所以我想在将用户输入的数据保存在数据库中以在另一个 JSP 页面中显示之前对表单中输入的数据进行转义,并且我在两种方法之间犹豫不决:

StringEscapeUtils.escapeHtml(),对于输入REGGAETON / SALSA给我相同的结果,但对于ESAPI.encoder().encodeForHTML()相同的输入,输出将是REGGAETON & #x2f; 莎莎舞

Tom*_*Tom 5

不要保存转义的数据,当你需要显示它时转义它

转义它的方式取决于你想显示它的上下文,所以如果你保存它转义,它只能在那个上下文中使用,而且大多数时候,转义函数不是双射的,所以你会丢失信息

对于编码它以在 html 上下文中显示它方式,两种方式接缝都是正确的。

此外,为了提高对 XSS 的保护,您应该查看 CSP(内容安全策略),它有很大帮助,尤其是对于新项目。