Jsp 已投产项目的XSS保护

Jsp 已投产项目的XSS保护,jsp,servlets,xss,Jsp,Servlets,Xss,我们有一个基于servlet和struts的应用程序。它是一个巨大的应用程序,查询是用jsp编写的,并且易于使用XSS(请求值以jsp的形式打印)。这是一个包含200个jsp的大型应用程序 我们希望以这样一种方式修复XSS攻击,即进行最少的代码更改,从而缩短QA开发周期,让QA获得更多的时间 谢谢唯一有效的方法是创建一个UI层。也就是说,使用一个像Vaadin、谷歌Web工具包或类似的框架,它抽象掉所有HTML、JavaScript等,以便开发人员在UI外观和感觉上,或者创建一个新页面,或者修改

我们有一个基于servlet和struts的应用程序。它是一个巨大的应用程序,查询是用jsp编写的,并且易于使用XSS(请求值以jsp的形式打印)。这是一个包含200个jsp的大型应用程序

我们希望以这样一种方式修复XSS攻击,即进行最少的代码更改,从而缩短QA开发周期,让QA获得更多的时间


谢谢

唯一有效的方法是创建一个UI层。也就是说,使用一个像Vaadin、谷歌Web工具包或类似的框架,它抽象掉所有HTML、JavaScript等,以便开发人员在UI外观和感觉上,或者创建一个新页面,或者修改一个页面,不必考虑他/她的变化的安全含义。p> 这一点尤其重要,因为大多数开发人员不知道他们的更改对安全的影响,所以将它们抽象出来将有助于防止知识/经验的缺乏。它还可以防止开发人员犯下的简单错误——毕竟,我们知道代码总是有bug

它在其他方面也非常有益。使用UI框架,而不是将UI代码分散到任何地方,使维护更容易。它使UI看起来和感觉上保持一致。它在整个UI中对外观和感觉进行更改,而不是在任何地方进行定点修改。由于最初的实现并不完美而存在的bug或vuln可以在一个地方修复,而不是在任何地方进行定点修复

在此期间,在应用程序中创建UI层之前,您应该查看OWASP的ESAPI。它们提供栓接XSS保护。虽然它很可能会破坏UI中的某些功能,或者无法保护UI中的某些功能,但它做得不错。这是因为它没有与您的应用程序完全集成—它是栓接的—所以它不太可能是完美的