首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请教,登录怎么用存储过程来防止sql注入?

2012-03-03 
请问,登录如何用存储过程来防止sql注入??如题:请问,登录如何用存储过程来防止sql注入??[解决办法]办法挺多

请问,登录如何用存储过程来防止sql注入??
如题:
请问,登录如何用存储过程来防止sql注入??

[解决办法]
办法挺多的
如果用ADO。NET直接用参数化查询就可以了
千万不要拼那个SQL字符串
例 :
( c# )
string name = "张三 ";
string SQLSelect = "select * from 表名 where name = ' "+name " ' ";

这样隐患很大 很容易被注入攻击!


[解决办法]
string SQLSelect = "select * from 表名 where name = ' "+name " ' ";
不要用select *
用select 字段名1,字段名2
设置非管理员权限,一般用户登陆,不要使用sa登陆,另外设置一个登陆,
在数据库中对系统表如sysobjects,syscolumn等进行权限设置

[解决办法]
http://dev.csdn.net/article/84/84938.shtm
http://dev.csdn.net/article/84/84939.shtm
[解决办法]
@ 就是参数的意思,加了@就是所谓的参数化,可以防止SQL注入攻击
一般Parameter出现都是这样的
申明变量:
//cmd是Comment类的对象,@kind是参数变量
cmd.Parameters.Add( "@kind ", OleDbType.Char, 40);
//给@kind变量赋值
cmd.Parameters[ "@kind "].Value = this.textBoxKind.Text;

热点排行