【问题标题】:Use of Hard-coded Password [CWE - 259]使用硬编码密码 [CWE - 259]
【发布时间】:2019-07-01 14:04:20
【问题描述】:

在检查我的验证码问题时,我在我的一个类文件中发现了这个 CWE 259 Use of Hard-coded Password。在检查该文件时,该文件的第一行负责此漏洞,这是我的包名。谁能告诉我为什么会发生这种情况,或者这是验证码扫描逻辑的一些缺陷。

在这个类文件中,它们是打印单词“password”的地方。作为预防措施,我尝试评论这些行并再次扫描。但问题被抛出在同一行。

package com.name.ta.etc.cse;

【问题讨论】:

  • “我尝试通过注释这些行并再次扫描它。但问题出现在同一行。”您是否在扫描之前重新编译了这些类并重建了 jar ?
  • 是的 - 我做到了。因为我每次都使用 eclipse,所以默认情况下会发生重新编译和重建
  • 类文件不包含对package 声明的任何行号引用。如果某个工具报告第 1 行有问题,则表明存在未知源代码行。

标签: java java-8 issue-tracking veracode


【解决方案1】:

MITRE 的CWE 259 页面准确地说明了漏洞的含义并提供了示例,并提出了一些想法以纠正或减轻您的应用程序中的漏洞。

诸如 Veracode 或 SonarQube 之类的代码检查工具也可以标记误报(它们会检测到漏洞,但并不存在)。我有一个 Sonar 标记此问题的案例,其中我有一个静态最终变量(即:一个常量),其名称中带有单词 PASSWORD,Sonar 认为它是实际密码,而实际上它是从属性中查找密码的关键。

根据您的描述,可能就是这种情况(极端条件,因为您没有提供足够的代码来判断)。如果您可以通过将密码更改为任何其他单词来重构代码,而无需更改底层逻辑,也不会破坏传入或传出身份验证,那么这里很可能就是这种情况。

【讨论】:

    【解决方案2】:

    验证码没有缺陷。它的扫描正确。如果它会找到任何关键字,如“pass”或“paswd”或“password”,它会将其提升为“Flaw”,因此您必须强制删除/替换这些关键字才能解决它。 删除/替换关键字再次扫描您的应用程序并检查。

    在您不将密码存储为纯文本之前,没有真正的安全问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多