文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库如此高效通用的分页存储过程是带有sql注入漏洞的
精品推荐
特别推荐
·SQL数据库完全使用手册
·进阶:精妙SQL语句介绍
·sql删除记录
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
·学会三个范式快速成为数据库设计的高手
·SQL数据库应聘人员面试时经常被问的问题
·问答:查询分析器不能单步调试的的原因
·数据库基础知识:SQL中的IIF语句详解
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·你知道吗?优化数据库前的十大问题
·自动备份注意事项让你远离误删数据噩梦
·关于MSSQL数据库日志满的快速解决办法
·SQL安全设置攻略
·SQL注入的不常见方法
热点TOP10
·学习SQL语句之SQL语句大全
·SQL数据库完全使用手册
·玩转Windows桌面图标
·精妙SQL语句收集
·Transact SQL 常用语句以及函数
·一个简单的酒店系统的数据库设计
·使用DatabaseMetaDate获取数据库信息
·sqlldr使用小结
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·Delphi程序执行时实时生成报表
·图片保存到数据库和从数据库读取图片并显示(c#)
·VB.NET的数据库基础编程(1)
·SQL查询语句精华使用简要
·如何实现将vsflexgrid中修改的数据反馈到数据库中
·SQL优化34条
·SQL 新增/修改 表字段列的类型等
·还原数据库的经典做法
·通过分析SQL语句的执行计划优化SQL(二)
·通过Remoting service上传文件
·如何在GridView中一次性批量更新多行数据

如此高效通用的分页存储过程是带有sql注入漏洞的

日期:2007年4月18日 作者: 查看:[大字体 中字体 小字体]


在google中搜索“分页存储过程”会出来好多结果,是大家常用的分页存储过程,今天我却要说它是有漏洞的,而且漏洞无法通过修改存储过程进行补救,如果你觉得我错了,请读下去也许你会改变看法。

通常大家都会认为存储过程可以避免sql注入的漏洞,这适用于一般的存储过程,而对于通用分页存储过程是不适合的,请看下面的代码和分析!

一般的通用的分页存储过程代码如下:

通用分页存储过程
CREATE PROCEDURE pagination
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) = '*', -- 需要返回的列
@fldName varchar(255)='', -- 排序的字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@doCount bit = 0, -- 返回记录总数, 非 0 值则返回
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(1500) = '' -- 查询条件 (注意: 不要加 where)
AS

declare @strSQL varchar(5000) -- 主语句
declare @strTmp varchar(110) -- 临时变量
declare @strOrder varchar(400) -- 排序类型
if @doCount != 0
begin
if @strWhere !=''
set @strSQL = 'select count(*) as Total from [' + @tblName + '] where '+@strWhere
else
set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
end
--以上代码的意思是如果@doCount传递过来的不是0,就执行总数统计。以下的所有代码都是@doCount为0的情况
-- http://www.knowsky.com/article.asp?typeid=20
else
begin
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName +'] desc'
--如果@OrderType不是0,就执行降序,这句很重要!
end

else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
if @PageIndex = 1
begin
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from [' + @tblName + '] where ' + @strWhere + ' ' + @strOrder
else
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['+ @tblName + '] '+ @strOrder
--如果是第一页就执行以上代码,这样会加快执行速度
end

else
begin
--以下代码赋予了@strSQL以真正执行的SQL代码
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
end
end
exec (@strSQL)
GO


大家可以看到上面的存储过程中是通过一些步骤最终拼接成一个sql字符串,然后通过exec执行这个串得到分页的结果。



[1] [2] 下一页 




上一篇:忘记了 MySQL 的 root 密码

下一篇:JavaScript仿Windows关机效果

如此高效通用的分页存储过程是带有sql注入漏洞的 相关文章:
·IE浏览器再现严重安全漏洞 微软紧急发补丁程序
·无线攻防:破解WEP密钥过程全解
·绝对好用的注册表技巧
·用SOFTICE破解WINZIP的过程
·非主流ps教程实用的技巧大全
·推荐:漂亮的手机上使用的墙纸图片分享下载
·asp.net(C#)海量数据表高效率分页算法(易懂,不使用存储过程)
·一个Struts实现分页,增删改查,Tiles,国际化的DEMO
·Windows2000/XP启动过程详解
·利用腾讯漏洞取回QQ密码
如此高效通用的分页存储过程是带有sql注入漏洞的 相关软件:
·目前中国最快最好用的XP系统 天宇7.5版美化GHOST XP
·不过如此
·BIOS设置全过程视频精讲(配语音讲解)WMV格式
·Win2000输入法漏洞最新官方补丁中文版
·电脑装机全过程
·飞龙文章系统上传漏洞
·BIOS设置全过程精讲 wmv 查看
·BBSXP SQL版漏洞演示+工具
·澎湃 番茄花园漏洞补丁 bat&reg 漏洞比病毒可怕
·东方卫士--系统漏洞专查工具Build 2002.06.21

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot