首页 新闻 会员 周边

关于SQL注入的问题

0
悬赏园豆:10 [已关闭问题] 关闭于 2010-01-05 10:24

我知道 ,SQL注入基本是通过构造  sq语句造成的,小弟才疏学浅,最近在做一个网站,想防范SQ的注入攻击,由于是做完网站后才修改的量有些大。已经将一些基本的添加、删除、更新 操作全部参数化了。但是在 查询语句上还有部分 使用了SQ语句的拼接(主要是方便)。这些拼接大部分是这样的:

 int ID = Convert.ToInt32(Session["ID"]);

或者  int id=Convert.ToInt32(Request.QueryString["id"];)

然后再 拼接语句: model  = bll.getModel("id="+id);

像这种 拼接应该是不能注入的吧,参数变成了 数值类型。对注入了解不深,希望各位大虾知道知道。

问题补充: 我所有的转换都有 try catch 块 并且 web.config上 也配置了<customErrors > 希望高手能举个详细的例子。
DotDot的主页 DotDot | 初学一级 | 园豆:109
提问于:2009-12-21 16:06
< >
分享
所有回答(4)
0

要是你的sql db没有抛到外网的话,这样基本上够用了

只是你要在convert的时候注意try catch

persialee | 园豆:3217 (老鸟四级) | 2009-12-21 16:16
0

可以,SQL 注入是,对系统的数据库进行破坏, 比如删除数据结构,表等,

所以对操作的异常不能显示在界面上,这样容易让人获取 数据结构,表名等,

比如:

 'tablename' 无法找到

等等 错误信息都有可能会吧数据库信息暴露

Paabo | 园豆:157 (初学一级) | 2009-12-21 16:17
0

只要禁止错误显示,字符类型控制死,字符串类型的过滤敏感sql语句关键字,这样就不太可能有注入的危险了。

阿松 | 园豆:601 (小虾三级) | 2009-12-21 23:11
0

呵呵,最好还是自己过滤一下

写个类库,所有接收的参数先用这个类库过滤,不然人家用软件猜解的注入点一样可以注入

Aicken(李鸣) | 园豆:480 (菜鸟二级) | 2009-12-24 14:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册