在我的天蓝色中,我创建了SQL数据库,因为我启用了Auditing&用于记录审计和威胁检测的威胁检测选项。
有关我在Azure SQL数据库中所做的更多信息,请参阅下图。
我在控制器中编写了以下代码来检测SQL注入威胁。
public List<UsersTable> GetUsersTablebyUserName(string username)
{
SqlCommand sqlCmd = new SqlCommand(
"SELECT * FROM UsersTables WHERE UserName='" + username +"'",
new SqlConnection(connectionString.ToString()));
UsersTable userInfo = null;
List<UsersTable> userInfoList = new List<UsersTable>();
using (sqlCmd.Connection = new SqlConnection(connectionString.ToString()))
{
try
{
sqlCmd.Connection.Open();
SqlDataReader reader = sqlCmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
userInfo = new UsersTable()
{
ID = (int)reader[0],
UserName=reader[1].ToString(),
Password=reader[2].ToString()
};
userInfoList.Add(userInfo);
}
}
else
{
return userInfoList;
}
}
catch (Exception ex)
{
throw;
}
}
return userInfoList;
}
成功执行上述代码后,我从azure portal下载了日志,并在excel中打开,如下图所示。
即使我通过测试或'1'='1 这样的用户名,但它无法跟踪我的日志中的威胁检测,它始终会将访问状态显示为的成功
我怎样才能看到威胁检测发生或有人将测试或'1'='1 等文本传递给我的上述SQL查询?
答案 0 :(得分:1)
SQL数据库威胁检测提供了一种算法,可持续监视,配置和检测指示潜在漏洞和SQL注入攻击的正常和可疑活动和模式。 为了减少误报,我们努力工作,因此我们的算法只有在您的数据库受到高攻击的可能性时才会触发警报。我们不会在外部分享这项工作的具体细节。
谢谢,Tomer(MSFT)。