我们有一个基于 servlet 和 struts 的应用程序。它是一个巨大的应用程序,带有用 jsp 编写的查询并且容易出现 XSS(请求值在 jsp 中按原样打印)。它是一个拥有 200 个 jsp 的巨大应用程序。
我们希望以这样一种方式修复 XSS 攻击,即完成最少的代码更改,以便 QA 开发周期小,QA 获得更多时间。
谢谢
唯一真正有效的方法是创建一个 UI 层。也就是说,使用像 Vaadin、Google Web Toolkit 或类似的框架,它抽象出所有 HTML、JavaScript 等,以便开发人员在 UI 外观和感觉上工作,或创建新页面或修改页面,不必考虑他/她的更改的安全影响。
这一点尤其重要,因为大多数开发人员不知道他们的更改的安全含义,因此将它们抽象出来将有助于防止缺乏知识/经验。它还可以防止开发人员犯的简单错误 - 毕竟,我们知道代码总是有错误。
它在其他方面也非常有益。使用 UI 框架而不是到处散布 UI 代码使维护更容易。它使 UI 的外观和感觉保持一致。它使外观和感觉的更改发生在整个 UI 中,而不是到处固定。由于原始实现不完美而存在的错误或漏洞可以在一个地方修复,而不是到处修复。
在此期间,在您在应用程序中创建 UI 层之前,您应该查看 OWASP 的 ESAPI。他们提供螺栓固定式 XSS 保护。它做得不错,尽管它很可能会破坏 UI 中的某些功能,或者不会保护 UI 中的某些功能。这是因为它没有与您的应用程序完全集成 - 它是固定的 - 所以它不太可能是完美的。