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