java - 使用 OWASP 修复 java 中的跨站脚本漏洞

标签 java xss esapi

我正在致力于解决 java 中的跨站点脚本问题。由于我是 OWASP 的新手,有人可以帮助我弄清楚如何在以下情况下使用 OWASP 来清理输入。

  1. Enumeration<String> EnumHeader = request.getHeaderNames();

  2. Map<String, String[]> pMap = request.getParameterMap();

  3. Object value = request.getHeader(key);

  4. String[] refs = (req.getParameterValues(REFS_NAME));

最佳答案

虽然数据验证对于防止 XSS 非常有帮助,但它不一定涵盖持久性 XSS 的所有基础。唯一 100% 有效的保护是 OWASP Java 编码器项目或 OWASP ESAPI 编码器提供的正确上下文输出编码。原因之一是对于持久性 XSS,受污染的数据可能来自可能由另一个应用程序输入或更改的数据库,该应用程序对这些相同的数据库表具有插入/更新访问权限,但没有执行正确的数据验证。 (也就是说,受污染的数据可能会以其他方式而不是通过应用程序进入您的系统。)因此,唯一万无一失的解决方案是进行适当的上下文输出编码。您已经指出的 OWASP XSS 预防备忘单是一个很好的起点,它解释了所有这些。

关于java - 使用 OWASP 修复 java 中的跨站脚本漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45868563/

相关文章:

java - 将 HTML 解析为纯文本,但保留每个字符的标签信息

java - Apache httpclient 在加载之前返回页面?

java - 将 esapi 与 CF8 和 JavaLoader 一起使用时出错

logging - 需要 OWASP-ESAPI 记录器帮助

java - 无法访问Parent LinkedList java

java - java中的警告随着强制转换的范围而变化

http - http-header "X-XSS-Protection"是什么?

javascript - 我的 HTML 中包含的 JavaScript 库能否使用 cookie session 向我的网站发出请求?

javascript - 避免 XSS 并允许一些带有 JavaScript 的 html 标签

java - 为什么 ESAPI 编码器不能与 Java 1.8 一起使用