信息曝光通过checkmarx中的错误消息

时间:2016-12-26 09:57:46

标签: java spring

try {
    //code
} catch (ParseException e) {
    e.printStackTrace();
} catch (MalformedURLException e) {
    LOG.error("Error in finding Resource Bundle", e);
}

我是这样写的,但是当我使用Checkmarx代码分析工具时,我正在通过错误信息"信息曝光"。如何解决以及何时获得。

2 个答案:

答案 0 :(得分:1)

什么是通过错误信息曝光

  

该软件会生成一条错误消息,其中包含有关其环境,用户或相关数据的敏感信息。

     

敏感信息可能是有价值的信息(如密码),也可能对发起其他更致命的攻击很有用。如果攻击失败,攻击者可能会使用服务器提供的错误信息来启动另一个更集中的攻击。<​​/ p>

(引自CWE-209: Information Exposure Through an Error Message

您没有指定,但我假设Checkmarx工具指向printStackTrace()作为流程的问题终点。

通过使用此方法,异常(包括其整个堆栈跟踪)将打印到标准错误流。这可能包括可能本身敏感的信息(如用户名或密码)或至少披露一些环境数据。如果此数据向用户公开,则可能会被滥用或恶意使用以进行更有效的攻击。<​​/ p>

还有很多其他理由不使用printStackTrace(),这可以在这里看到:Why is exception.printStackTrace() considered bad practice?

答案 1 :(得分:0)

首先删除<div class="tabs"> <div class="gwt-HTML tab">1</div> <div class="gwt-HTML tab">2</div> <div class="gwt-HTML tab">3</div> <div class="gwt-HTML tab">4</div> <div class="gwt-HTML tab">5</div> </div>

现在,由于必须记录错误,因此您可以删除e.printStackTrace();

所以,只为这个...... LOG.error("Error in finding Resource Bundle", e);提供闭包。由于这是Logs are being generated关键,因此它们不是大问题。

我们的项目每次都会发生这种情况:P。