在“天哪”中,我创建了SQL数据库,因为我启用了用于记录审核和威胁检测的审核和威胁检测选项。
有关我在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门户下载了日志并在excel中打开,如下图所示。

即使我通过了用户名,比如测试或‘1’=‘1’,但它不会跟踪我的日志中的威胁检测,它也总是将访问状态显示为success。
当威胁检测发生时,或者有人将测试或‘1’=‘1’这样的文本传递给我的上面的SQL查询,我怎么看?
发布于 2017-02-09 13:45:46
SQL数据库威胁检测提供了一种算法,用于持续监视、配置文件,并检测正常和可疑的活动和模式,指出潜在的漏洞和SQL注入攻击。为了减少误报,我们努力工作,所以我们的算法只有在数据库中有很高的攻击概率时才触发警报。我们不对外分享这项工作的确切细节。
谢谢,托默(MSFT)
https://stackoverflow.com/questions/42070758
复制相似问题