警告登录安全信息

kav*_*eja 5 java eclipse-plugin findbugs jetty sonarlint

我很担心人们将机密信息记录到服务器日志中. 我已经看到生产中的服务器日志.一些开发人员不小心记录了安全相关信息,如password,clientId,clientSecret等.

是否有任何方法,如Eclipse插件或任何工具,在编写代码时警告开发人员?

 `ex : log.info("usernam = " + username + "password = " + password) ;` // 
Warn that confidential info is getting logged.
Run Code Online (Sandbox Code Playgroud)

我做了一些研究......我见过像sonarLint和FindBug这样的工具

但那些插件无法解决我的问题.

Mic*_*eam 7

SonarLint提供规则S2068:凭证不应该是硬编码的,其目标是使用硬编码凭证,它似乎接近您要实现的目标,尽管它可能不足以满足您的需求.

然而,正如其他答案中所述,识别此类安全漏洞最终可能会很困难,强有力的代码审查无疑是降低风险的良好举措.

现在,如果你真的害怕记录器的使用,已经知道潜在的问题,以及可能泄漏的数据,我建议为SonarQube编写自己的Java自定义规则.

SonarLint支持自定义规则,一旦包含它的Custom Plugin部署在SonarQube服务器上,就可以在企业级应用.此解决方案允许您明确定义要定位的内容,并根据您的需求和企业细节微调规则.编写此类规则并不难,并在以下教程中进行了说明:Java的自定义规则.