我注意到ESAPI在很大程度上减慢了我的应用程序。我当然喜欢这个想法,但我继承了一个使用它的应用程序,并且我一直收到错误。我正在使用Spring boot 1.5.7并尽可能多地跟上其他依赖项以保持最现代化。所以我想知道是否还需要这个?
但经过大量研究后,看起来ESAPI似乎是一个孤独的人。我个人从未理解除了OWASP之外它应该做什么,这说明这是件好事。现在我尊重OWASP,并希望尽可能保证我的申请。
所以我的问题是,在删除ESAPI后,我发现一些使用的代码行是这样的:
ESAPI.encoder().encodeForJavaScript(ControllerHelper.getJavascriptStuff());
我应该使用什么作为替代品?为什么?
答案 0 :(得分:2)
这个问题对于SO而言并不是一个很好的问题,但与此同时,它肯定会出现在任何人身上。因此,我将此标记为社区维基,以后可以将其迁移到更好的家中。
所以核心问题是:
所以我的问题是,在删除ESAPI后,我发现了一些行 使用的代码是这样的:
ESAPI.encoder().encodeForJavaScript(ControllerHelper.getJavascriptStuff());
我应该用什么作为替代品?为什么?
IF ALL ,您需要的是编码器,请使用轻量级OWASP Encoder Project.
然而,该项目也不会给你一个解码器。
why 部分。值得wiki的部分。
在所有应用程序开发中,程序员有责任确保数据始终仅作为数据处理。在您出现的情况下,开发人员使用编码器确保传递给客户端的数据始终被JavaScript解释器视为数据。
如果没有这样做可以导致用户提交例如javascript代码作为输入,然后您的应用程序转而将其提供给另一个用户。在最坏的情况下,它可能被用于丢弃企业网络周边的恶意软件文件。
但也有更多值得担心的问题。 javascript有效负载是否会呈现为HTML?如果是这样,那么它可能应该首先进行HTML编码。预防XSS是一个广泛的主题,您可以开始使用here.