关于防止sql注入的几种手段(二)

接着下午的写:

关于防止sql注入的几种手段(一) 

 

 第二条或许应该再补充一下,在mysql里,也有类似的执行动态语句的,就是PREPARE+execute,这个的使用和mssql里的sp_executesql功效相同,也能够带参数,防止动态sql语句注入。

 

在很多应用场景里面,用户最烦的就是分页的存储过程写法,所以,很多人就发明了通用的存储过程分页,可以通过site:cnblogs.com 通用存储过程分页 在gg里搜索,居然有32000条收录,先不说别的,看看排名前三位的的吧,

 

1  http://www.cnblogs.com/wengyuli/archive/2009/01/13/1375196.html

 

2  http://www.cnblogs.com/spring/archive/2005/09/02/228573.html

 

3 http://www.cnblogs.com/vagerent/archive/2007/10/17/927825.html

 

都是有注入漏洞的, 随便拿一个来试试注入,排名第一的,sql语句如下:

 

Code

 这个是转自邹健大哥的,邹健想必大家都认识,让我们来试一下他的通用存储过程:

 

exec sp_PageView 'article','articleid',1,10,'subject,articleid',' articleid desc;select 1 as ''ok''; ','', null 

 

看看返回什么吧:

 

 

 

注入成功!

那这个到底怎么回事呢???

邹健大哥的通用存储过程都存在漏洞吗?

 

到底什么样的写法才不会被注入呢?太恐怖了

 

 

 

posted on 2009-11-24 21:07  Keep Walking  阅读(4719)  评论(22编辑  收藏  举报