文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络编程数据库SQL安全设置攻略
精品推荐
特别推荐
·学习SQL语句之SQL语句大全
·数据备份失败的五个原因及解决办法
·解决SQL Server常见的七个经典问题
·SQL存储过程的概念,创建,调用,管理,删除,优点
·带你轻松接触13个数据库术语
·如何恢复系统数据库如何恢复系统数据库?
·通过实例讲解由浅入深学会存储过程
·学会三个范式快速成为数据库设计的高手
·SQL数据库应聘人员面试时经常被问的问题
·问答:查询分析器不能单步调试的的原因
·数据库基础知识:SQL中的IIF语句详解
·WindowsXP+IIS+PHP5+MySQL5+Zend+GD库+phpMyAdmin+PHPWind 5.3 安装教程
·你知道吗?优化数据库前的十大问题
·自动备份注意事项让你远离误删数据噩梦
·关于MSSQL数据库日志满的快速解决办法
·SQL安全设置攻略
·SQL注入的不常见方法
·关于SQL语句的优化方式
·SQL优化34条
·查询及删除重复记录的方法
热点TOP10
·学习SQL语句之SQL语句大全
·玩转Windows桌面图标
·ADO连接数据库字符串大全
·精妙SQL语句收集
·Apache+php+mysql安装与配置详解
·ASP.NET中数据库的操作初步----DataSet操作数据库
·Transact-SQL语句总汇
·一个简单的酒店系统的数据库设计
·VB.NET的数据库基础编程(1)
·QQ聊天记录器演示程序(一)
·通过Remoting service上传文件
·VB.NET的数据库基础编程(2)
·了解SQL语句的功能,快速学会SQL语句
·数据库开发与应用:SQL常用命令使用方法
·如何在GridView中一次性批量更新多行数据
·Delphi程序执行时实时生成报表
·使用设计模式构建通用数据库访问类
·SQL查询语句精华使用简要
·101个微软提供的Visual Studio 2005示例
·SQLSERVER备份和对日志的处理

SQL安全设置攻略

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



下面,我从程序方面介绍一下SQL注入的防御方法,首先看这三句最简单SQL语句
1.SQL="select * from Users where UserID=" & Request("ID")
2.SQL="select * from Users where UserID='" & Request("ID") & "'"
3.SQL="select * from Users where UserName like '%" & Request("Name") & "%'"

第一句,参数是数字型,这个很明显。第二句,如果字段UserID是int型,就有些人分不清楚了。其实,区分第数字弄和字符型参数,只要看SQL语句参数两边有没有单引号即可,很明显,第一句没单引号,是数字型;第二第三句有单引号,是字符型。

  对于数字型变量,传入的参数都会直接附加到SQL语句上执行,而因为参数是数字型,所以用isNumeric判断是很安全的,我曾经试过用\0之类试图断开参数,但结果都是失败。

  对于字符型变量,传入的参数都是做为常量,比如你传1 and 1=1进去,SQL语句就是UserID='1 and 1=1',在单引号界定范围里面的值永远都只是一个常量,要打破这个范围,唯一的字符就是界定的字符:单引号。所以,字符型变量只要过滤了'号就完全安全了,至于如何过滤,最好是把一个单引号替换成两个单引号,因为SQL语句里面规定,'常量'这样表示的常量里面,常量里面如果要有单引号,可以用两个单引号代替。这样,既可以保持用户输入的原貌,又可以保证程序的安全。

  下面是两个函数,大家可以Copy过去直接调用就行了。

'---------------------------------------------------------------
' NB联盟防注入函数 ReqNum / ReqStr
'---------------------------------------------------------------
Function ReqNum ( StrName )
ReqNum = Request ( StrName )
if Not isNumeric ( ReqNum ) then
Response.Write "参数必须为数字型!"
Response.End
End if
End Function

Function ReqStr ( StrName )
ReqStr = Replace ( Request(StrName), "'", "''" )
End Function



以上面三句SQL语句,说明一下调用方法:

1.SQL="select * from Users where UserID=" & ReqNum("ID")
2.SQL="select * from Users where UserID='" & ReqStr("ID") & "'"
3.SQL="select * from Users where UserName like '%" & ReqStr("Name") & "%'"



  重申一点:上面的方法无论对SQLServer库还是Access或是其它数据库,都是绝对适用、绝对安全,但注意一点,SQLServer的存储过程是个例外,该情况下要把单引号替换成四个单引号,以保安全。

(出处:清风下载学院


上一页 [1] [2] [3] 




上一篇:开启终端的最简单方法全攻略

下一篇:Win XP系统任务栏实用技巧总集

SQL安全设置攻略 相关文章:
·《仙剑奇侠传2》完美补充攻略 - 游戏攻略
·SCEA超大作《战神》完全权威评析(ps2) - 战神攻略秘籍 - 战神
·太阁立志传4 攻略及技巧
·暗黑破坏神2:毁灭之王 装备修改指南 - 游戏攻略
·无盘工作站2000终端全攻略
·《新金瓶梅》全攻略
·魔法门6攻略补遗
·100剧情三打白骨精攻略流程
·三国群侠传 流程攻略 - 游戏攻略
·《真三国无双3》全攻略 - 真三国无双4攻略秘籍 - 真三国无双4
SQL安全设置攻略 相关软件:
·使用GPMC随心所欲管理组策略
·家装设计全攻略精美珍藏版
·多种dos启动盘制作全攻略
·盟军敢死队II(Commandos 2)完全图文并茂攻略
·无尽的任务战略版中文版
·蓝海战略
·中国道教人物传略
·陈安之-总裁策略行销班现场版
·高清晰 经典电脑故障全攻略PDF电子书
·《古墓丽影10周年纪念版》强档全攻略

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