黑马程序员技术交流社区
标题:
怎样防止SQL代码注入漏洞?
[打印本页]
作者:
ARMdong
时间:
2012-8-2 07:23
标题:
怎样防止SQL代码注入漏洞?
例如 1' or '1' '1之类的注入漏洞
作者:
蔡尚猛
时间:
2012-8-2 07:39
老兄!杨老师的视频讲的很清楚了呀,方法很多的,1、比如正则表达式检索输入的字符是否符合要求,2、使用javascript对输入的字符过滤,当时杨老师讲的是使用SqlParameter传参
{:soso_e100:}
作者:
李帅
时间:
2012-8-2 07:43
恩 视频里有讲的 比如像这样
string sql = "insert into Admin(UserName,Password)values(@UserName,@Password)";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ".......";
SqlCommand com = new SqlCommand(sql, conn);
com.Parameters.Add(":UserName",SqlDbType.NVarChar, 60).Value = userName;
com.Parameters.Add(":Password", SqlDbType.NVarChar, 60).Value = password;
conn.Open();
int rowsAffected = com.ExecuteNonQuery();
conn.Close();
com.Dispose();
作者:
韩迎龙
时间:
2012-8-2 08:17
我所知道的防止SQL注入就是给给字段加参数,也就是这样的:
com.Parameters.Add("@UserName",SqlDbType.NVarChar, 60).Value = userName;
但是今天看到博主的问题,我在网上查看一下,现将网址分享如下:
http://hi.baidu.com/liulin0712/item/34dbd7ea7b69f60e65db0072
作者:
刘玺
时间:
2012-8-3 12:37
杨老师讲的注入式漏洞应该是:1' or '1'='1。你写的那个应该早不成漏洞。
ADO.NET中的SQL语句,你不要使用拼接字符串的方式。而换成参数化查询方式就可以防止注入式漏洞。 1' or '1'='1,实际上就就是跟你在cmd.CommandText="..."; SQL语句中的链接字符串方式拼接成了 一个 结果为 select... or '1'='1' 这个语句什么时候都会有结果,所以会造成注入式漏洞。
作者:
李晋
时间:
2012-8-3 12:57
1过滤输入的东西
2用参数化查询
3用Linq
作者:
赵刘滨
时间:
2012-8-5 19:28
主要的就是给字段加上参数
作者:
吴凡
时间:
2012-8-10 00:42
注入漏洞就是 利用字符串拼接的漏洞将 输入参数 当关键字输入了。
利用参数化参训就强制性的讲 输入的字符串 当做字符串使用。 系统不会在产生歧义。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2