即使使用 web.xml 中定义的 ESAPI XSS 过滤器,Veracode 扫描仍会标记 XSS 问题
Veracode scan still flagging XSS issues even after using ESAPI XSS Filter defined in web.xml
使用 ESAPI 创建了一个 XSS 过滤器
参考 (https://dzone.com/articles/stronger-anti-cross-site)
并使用 Veracode 在 web.xml.Scanned ear 文件中定义它。 Veracode 仍然标记与 XSS 问题相同的问题。 Veracode 不以使用Servlet 过滤器作为解决代码中XSS 问题的解决方案吗
不要使用那个过滤器。作者对它能做什么过于乐观了。有很多方法可以利用 XSS。查看 XSS Filter Evasion Cheat Sheet 中的一些示例。例如随机取一个:<IMG SRC=# onmouseover="alert('xxs')">
和运行它通过过滤器。直接通过了
他们完成替换的方式可能会使输入处于比开始时更糟糕的状态。通过从 <<script>script>alert('xss')</<script>script>
中删除脚本标签,您只剩下 <script>alert('xss')</script>
即使添加更多模式,黑名单方法也是错误的,因为它无法涵盖所有可能性并且可能会破坏有效数据。为了防止 XSS 问题,您应该确保添加到页面的任何数据都是 HTML 编码的。参见:XSS prevention is JSP/Servlet.
使用 ESAPI 创建了一个 XSS 过滤器 参考 (https://dzone.com/articles/stronger-anti-cross-site) 并使用 Veracode 在 web.xml.Scanned ear 文件中定义它。 Veracode 仍然标记与 XSS 问题相同的问题。 Veracode 不以使用Servlet 过滤器作为解决代码中XSS 问题的解决方案吗
不要使用那个过滤器。作者对它能做什么过于乐观了。有很多方法可以利用 XSS。查看 XSS Filter Evasion Cheat Sheet 中的一些示例。例如随机取一个:<IMG SRC=# onmouseover="alert('xxs')">
和运行它通过过滤器。直接通过了
他们完成替换的方式可能会使输入处于比开始时更糟糕的状态。通过从 <<script>script>alert('xss')</<script>script>
中删除脚本标签,您只剩下 <script>alert('xss')</script>
即使添加更多模式,黑名单方法也是错误的,因为它无法涵盖所有可能性并且可能会破坏有效数据。为了防止 XSS 问题,您应该确保添加到页面的任何数据都是 HTML 编码的。参见:XSS prevention is JSP/Servlet.