如何修复 "Password management, empty password"?
How to fix "Password management, empty password"?
HP fortify document 警告我以下代码会有一些安全问题:
string storedPassword = "";
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if(Utils.VerifyPassword(storedPassword, userPassword))
// Access protected resources
...
}
如果 readPassword() 由于数据库错误或其他问题未能检索存储的密码,则攻击者可以通过为 用户密码.
好的...我同意说明...但是如何解决问题?代码处理密码管理的最佳做法是什么?
您可以简单地使用 IsNullOrWhiteSpace
语句:
public bool VerifyPassword(string storedPassword, string userPassword)
{
if(string.IsNullOrWhiteSpace(userPassword))
{
return false;
}
}
在您拥有有效的密码值之前,不要初始化您的密码(在本例中为空字符串)。
string storedPassword;
//string storedPassword = null;
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if(Utils.VerifyPassword(storedPassword, userPassword))
// Access protected resources
...
}
HP fortify document 警告我以下代码会有一些安全问题:
string storedPassword = "";
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if(Utils.VerifyPassword(storedPassword, userPassword))
// Access protected resources
...
}
如果 readPassword() 由于数据库错误或其他问题未能检索存储的密码,则攻击者可以通过为 用户密码.
好的...我同意说明...但是如何解决问题?代码处理密码管理的最佳做法是什么?
您可以简单地使用 IsNullOrWhiteSpace
语句:
public bool VerifyPassword(string storedPassword, string userPassword)
{
if(string.IsNullOrWhiteSpace(userPassword))
{
return false;
}
}
在您拥有有效的密码值之前,不要初始化您的密码(在本例中为空字符串)。
string storedPassword;
//string storedPassword = null;
string temp;
if ((temp = ReadPassword(storedPassword)) != null) {
storedPassword = temp;
}
if(Utils.VerifyPassword(storedPassword, userPassword))
// Access protected resources
...
}