Java 通过checkmarx中的错误消息公开信息
我是这样写的,但当我使用Checkmarx代码分析工具时,我得到了“通过错误消息暴露的信息”。如何解决此问题,以及何时获得。什么是通过错误消息暴露的信息 软件生成一条错误消息,其中包括有关其环境、用户或相关数据的敏感信息 敏感信息本身可能是有价值的信息(如密码),也可能有助于发起其他更致命的攻击。如果攻击失败,攻击者可能会使用服务器提供的错误信息发起另一次更具针对性的攻击 (引自) 您没有指定,但我假设Checkmarx工具指向Java 通过checkmarx中的错误消息公开信息,java,spring,Java,Spring,我是这样写的,但当我使用Checkmarx代码分析工具时,我得到了“通过错误消息暴露的信息”。如何解决此问题,以及何时获得。什么是通过错误消息暴露的信息 软件生成一条错误消息,其中包括有关其环境、用户或相关数据的敏感信息 敏感信息本身可能是有价值的信息(如密码),也可能有助于发起其他更致命的攻击。如果攻击失败,攻击者可能会使用服务器提供的错误信息发起另一次更具针对性的攻击 (引自) 您没有指定,但我假设Checkmarx工具指向printStackTrace()作为流的问题端点 通过使用此方法,
printStackTrace()
作为流的问题端点
通过使用此方法,异常(包括其整个堆栈跟踪)将打印到标准错误流中。这可能包括本身可能敏感的信息(如用户名或密码),或者至少披露一些环境数据。如果此数据暴露给用户,则可能会被滥用或恶意使用以进行更有效的攻击
不使用这种方式的原因还有很多:首先删除
e.printStackTrace()代码>
现在,由于必须记录错误,因此,您可以;t removeLOG.error(“查找资源包时出错”,e)代码>
因此,只需提供此的结束。。正在生成日志
。由于这是LOW
关键问题,因此他们的问题不大
我们的项目每次都会出现这种情况:p 感谢您的重播,但我没有使用where printStackTrace(),我使用的是Logger.fatal方法。我该怎么做…`LOG.error(“查找资源包时出错”,e);`还为使用printStackTrace()的信息公开
@kalluinarasimha生成复选标记,查看您提供的代码:)@atulquest93将错误写入日志可能会产生类似但不同的结果:通过服务器日志暴露信息
@yaloner在写入答案时,我实际上正在查看复选标记报告<代码>通过错误消息暴露信息
这是生成的精确复选标记。可能是不同的版本可能会产生一些特定的复选标记。在我们的项目中,我们也面临着同样的问题?你找到解决这个问题的办法了吗?
try {
//code
} catch (ParseException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
LOG.error("Error in finding Resource Bundle", e);
}