我有点困惑为什么 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)