checkmarx 是否将名为“密码”的属性标记为“中等”漏洞,无论其下划线实现如何?

Ebe*_*yed 1 c# checkmarx

我有点困惑为什么 checkmarx 将以下公共属性密码标记为堆检查类型的中等漏洞。

知道为什么 checkmarx 将此行标记为漏洞吗?对下面的代码有什么建议/改进想法吗?

SecureString password;

public String Password
{
    get { return SecureStringToString(password); }
    set
    {
        if (value != null)
        {
            password = new SecureString();
            foreach (char c in value) password.AppendChar(c);
        }
    }
}

String SecureStringToString(SecureString value)
{
    IntPtr valuePtr = IntPtr.Zero;
    try
    {
        valuePtr = Marshal.SecureStringToGlobalAllocUnicode(value);
        return Marshal.PtrToStringUni(valuePtr);
    }
    finally
    {
        Marshal.ZeroFreeGlobalAllocUnicode(valuePtr);
    }
}
Run Code Online (Sandbox Code Playgroud)

yur*_*rin 6

因为它命名为密码。CheckMarx 是一个 kaka 片段,可以对密码、索引、执行等词做出反应。避免它们,您的代码就会安全。(ChechMarx 作者的意见)。