我正在致力于解决 java 中的跨站点脚本问题。由于我是 OWASP 的新手,有人可以帮助我弄清楚如何在以下情况下使用 OWASP 来清理输入。
Enumeration<String> EnumHeader = request.getHeaderNames();
Map<String, String[]> pMap = request.getParameterMap();
Object value = request.getHeader(key);
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/