SQL注入攻击与防御

本文深入探讨了自动寻找SQL注入的工具,如HPWebInspect和IBMRationalAppScan,以及通过参数化语句、输入验证和编码输出等手段进行代码层防御的方法。同时,介绍了运行时防护技术,如WEB应用防火墙(WAF)和截断过滤器(UrlScan和WebKnight),确保应用安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

攻击

自动寻找sql注入的工具

1.       HP WebInspect

2.       IBM Rational AppScan

3.       SQLix

 

自动复查源代码

1.       CAT.NET

防御

代码层防御

使用参数化语句

string username="bill";

            string password="bill";

            SqlConnection con = new SqlConnection("");

            string sql = "select * from users where username=@username and password=@password";

            SqlCommand cmd = new SqlCommand(sql, con);

            cmd.Parameters.Add("@username", System.Data.SqlDbType.VarChar, 16);

            cmd.Parameters.Add("@password", System.Data.SqlDbType.VarChar, 16);

            cmd.Parameters["@username"].Value = username;

            cmd.Parameters["@password"].Value = password;

            var reader= cmd.ExecuteReader();

输入验证

对用户的数据输入进行验证

 

编码输出

对在应用的不同模块或部分间传递的内容进行编码

sql = sql.Replace("'", "''");

            sql = sql.Replace("[", "[[]");

            sql = sql.Replace("%", "[%]");

            sql = sql.Replace("_", "[_]");

平台层防御

运行时防护

WEB应用防火墙 (WAF)
截断过滤器(UrlScanWebKnight)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值