MS SQL注入是一种常见的计算机安全攻击,可以攻击和盗取MS SQL Server的数据。破坏者用来检索数据库中没有本质上批准的重要信息,例如帐户凭据和权限。这可以造成严重的安全风险,因此,具有安全思惟并熟习MS SQL利用程序的安全程序员一定要采取措施遏制这类攻击。
MS SQL注入攻击的最多见绕过技能是绕过防御机制,以到达入侵的目的。用于绕过防御的技能包括SQL语句中始终采取正确的参数类型,援用任何输入参数,和无效安全检查。SQL语句中参数如果采取毛病的参数类型,可能会致使攻击绕过系统的保护。另外一方面,将输入参数以适当的方式援用可以有效避免此类攻击,从而避免任何未受控制的数据传入利用程序。另外,开发人员也能够通过添加有效的安全检查来避免SQL注入攻击,和无效的安全检查,以便减少可能的未受控制的数据传入利用程序。
下面是一组简单的C#示例代码,显示了如何援用输入参数来避免注入攻击:
//声明和实例化一个sql连接
SqlConnection conn = new SqlConnection(CONNECTION_STRING);
//声明和实例化一个SqlCommand
SqlCommand cmd = new SqlCommand();
//设置SqlCommand命令的连接
cmd.Connection = conn;
//设置SqlCommand命令的类型
cmd.CommandType = CommandType.Text;
//设置SqlCommand的SQL语句,使用参数占位符,
cmd.CommandText = “SELECT * FROM users WHERE userName=@username”;
//给参数占位符赋值
cmd.Parameters.AddWithValue(“@username”, username);
//为了减少注入攻击,开发人员还可以为sql语句中的参数添加有效的安全检查。例如,可以添加以下有效的安全检查:
// 检查参数username中会不会包括数字
if(username.Contains(“[0⑼]”))
{
throw new Exception(“Invalid username”);
}
MS SQL注入攻击可能会不受检查,侵害组织的安全。为了不这类攻击,开发人员应当通过采取措施来确保参数类型正确,并正确援用所有输入参数,并为注入攻击添加有效的安全检查。
本文来源:https://www.yuntue.com/post/112061.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏