随笔 - 120  文章 - 0  评论 - 902  阅读 - 51万

关于防止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   Keep Walking  阅读(4736)  评论(22编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
< 2009年11月 >
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
6 7 8 9 10 11 12

点击右上角即可分享
微信分享提示