小编典典

防止敏感数据违反PCI标准-response.getWriter()。write(xml.toString())

java

我正在根据代码审核报告来修复代码。它对具有语法的行说“敏感数据的显着暴露”
response.getWriter().write(xml.toString())。整个代码如下。

String alertId =  request.getParameter("alertId") != null ? request.getParameter("alertId") : "";
                    String desc=AAAA.getBBBB(Long.parseLong(AAAA.getCCCC(alertId)));
                    StringBuffer xml = new StringBuffer();

                    xml.append("<?xml version=\"1.0\"?>");
                    xml.append("<parent>");
                    xml.append("<child>");
                    xml.append("<alertDesc>");
                    xml.append(desc);
                    xml.append("</alertDesc>");
                    xml.append("</child>");
                    xml.append("</parent>");

                    response.getWriter().write(xml.toString());  // ISSUE IN THIS LINE
                    response.setContentType("text/xml");
                    response.setHeader("Cache-Control", "no-cache");

我已经做了足够的家庭作业,可以针对XSS攻击进行修复,并使用ESAPI进行相同的工作。但不知道如何解决这一问题。请提供建议该报告针对所报告的问题具有以下消息。“通过网页泄漏toString()结果(“
xml”)“

经过一天的研发,我发现sax解析器可以在这种情况下为我提供帮助。实际上,这是由于StringBuffer.toString()语法导致的内存泄漏,这是由于敏感数据被暴露和丢失。但我不知道如何实现。同样在某个地方,我发现使用StringBuilder()类而不是StringBuffer()类。任何人都可以帮助我或提出宝贵建议。提前致谢。

另外,对于另一种类型的代码,我也有同样的问题。它在下面。

StringBuffer content = (StringBuffer)file.get("content");
response.setContentLength((int)content.length());
            response.getWriter().write(content.toString());

再次,我不知道如何解决这一问题。问题是该工具报告了相同的敏感数据泄漏。


阅读 501

收藏
2020-11-30

共1个答案

小编典典

content.toString()需要正确验证。使用ESAPI对其进行严格验证。直接写入响应确实很容易受到攻击,如果数据是从将请求作为输入的方法中输出的,那么它就易受攻击。主要安全问题。

2020-11-30