我对为什么 checkmarx 将以下公共属性Password标记为 Heap Inspection 类型的中等漏洞有点困惑。
知道为什么 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);
}
}