防范Sql注入式攻击
作者:未知
Sql注入式攻击是指利用设计上的漏洞,在目标服务器上运行Sql 命令以及进行其他方式的攻击
动态生成Sql命令时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因
比如一个在线书店,可以根据用户的输入关键字搜索相关的图书。
string name = GetUserInput("BookName");
string script = "select table_book where book_name? like? N'%" + name + RunSql(script)
RunSql(script);
如果
name? = " ' select @@servername where '' = ' ";
这样就可以得到DB Server的名字
还以在线书店为例,用户只有登陆后才能察看自己的帐户信息,这样做是无可置疑的,然而用户验证的代码如下
//id和password直接来自用户的输入。未做处理
string id = GetUserInput("UserID");
string password = GetUserInput("UserPassword");
tring script = "select * from table_user where User_ID = '" + id? + "' and User_Password? = '" + password? + "' ";
RunSql(script);
如果用户输入的password为“ or ''=' ”,那么生成的script就为
select * from table_user where User_ID = 'UserID' and User_Password? = ' ' or ''=' '
这样一来,即使不知道用户的密码也可以察看该用户的帐户信息了
再比如,入侵者会把一些巧妙伪装的代码嵌入到你动态生成的Sql命令中,比如
Delete table_Book where 1 = 1? ...
use master--
上面的例子都是一些简单的示例,攻击者还可能通过sql的漏洞对操作系统进行攻击,比如运行
[xp_cmdshell],[xp_regread]
当然实际上的攻击没有这么简单,攻击者还会利用系统设计的其他漏洞。比如程序把数据库返回的出错信息没有进行转换就直接输出给用户看,那么攻击者就设计一些sql语句诱导系统返回需要的信息
从上面的这些例子可以看出,对数据库访问权限的设计不当,给与每一个数据库连接太多的权限,甚至dbo或sa的权限,也是sql注入式攻击利用的主要漏洞之一。
?
防范sql注入式攻击
最小权限原则。特别是不要用dbo或者sa账户,为不同的类型的动作或者组建使用不同的账户,最小权限原则适用于所有与安全有关的场合
对用户输入进行检查。对一些特殊字符,比如单引号,双引号,分号,逗号,冒号,连接号等进行转换或者过滤;使用强数据类型,比如你需要用户输入一个整数,就要把用户输入的数据转换成整数形式;限制用户输入的长度等等。这些检查要放在server运行,client提交的任何东西都是不可信的
使用存储过程,如果一定要使用sq语句,那么用标准的方式组建sql语句,比如可以利用parameters对象,避免用字符串直接拼sq命令。
当sql运行出错时,不要把数据库返回的错误信息全部显示给用户,错误信息经常会透露一些数据库设计的细节
针对常用的sql注入式攻击方式对症下药
文章来源:黑客基地
更多关于 SQL注入,SQL,注入,防范 的文章
- [UTM]UTM安全设备在大企业中的未来探讨
- [新闻]美国竟是盗版源头 各类黑客工具热销
- [新闻]思科在华产品线大幅降价 金融危机拖累
- [资料]WatchGuard网络安全方案为尚德电力护航
- [新闻]今天你黑屏了吗?网络流行新段子
- [新闻]速用第三方工具补漏洞遏制木马入侵
- [应用案例]Qno侠诺城市小区网络接入解决方案
- [网页技术]解决杀毒软件误删asp文件的方法
- [SEO]一些值得注意的英文网站优化心得
- [新闻]金山WPS软件应对微软黑屏 日增50%安装
精彩专题
- [新闻]互联网企业裁员降薪正当时
- [新闻]09年关于微软10大预测 Windows7火爆
- [网页技术]深入了解Access数据库的4种安全方式
- [新闻]语摘:老外也谈中国“竞价门”
- [CDN]Google App Engine搭建自己的CDN
- [CDN]CDN技术在金融网络上的应用
- [新闻]尼尔森:中国网站10月流量排名报告
- [新闻]百度的38个“我”预示互联网2.0的崛起
- [新闻]SNS不被发现的四大盈利模式解密
- [SEO]活学活用 网站推广需要的1000次尝试
- [dudu]实现安全稳固的AD和DNS架构
- [mmet]找回丢失的管理员密码
- [宋家雨]别拿虚拟机不当固定资产
- [vvv]Juniper CTO:我看好100G
- [小希大人]關於cloudcompute對云計算
- [DU的世界]美国在反身份窃取方面努力
- [bigrong]向托马斯.弗里德曼致敬
- [blue]最近火起来的RUBY
- [淡月]国外十大著名IT类网站
- [宋家雨]失望的芯片虚拟化调查结果
- [姜子牙]采购大型化主机应对金融
- [小卡罗]再强也拼不过数据中心掉电
- [owenglyn]10大最流行开源软件!
- [淡月]QQ好友“集体出国”
- [ly]Ruby的日期和时刻
- [skke]快速排除PC上网故障
- [淡月]笔记本活拆键盘实录!(图)
- [姜子牙]Sun公司面临陨落
- [papada]生命游戏 c语言完成
- [淡月]裁员名单让你一次看个够!
- [江湖传闻] 自杀可增强公司竞争力
- [江湖传闻] 是什么冷落了中关村?
- [江湖传闻] 彩虹QQ外挂或致高层动荡
- [网管专区] 多线路叠加要注意的事项
- [网管专区] Web服务器Ping通不能访问
- [网管专区] 端口映射不成功找出原因
- [网管专区] 由故障性质排除网络故障
- [争议人物] 李想:汽车站大都是垃圾
- [争议人物] 梁永伦:上任半年别盛大
- [争议人物] 李一男:思维要转型
- [争议人物] 马化腾:曾想摆摊装电脑
- [争议人物] 梁念坚:14月挖来的高管!
- [IDC专区] “CMS文章”的汇总贴
- [IDC专区] 让中国web2.0去死!
- [网络安全] 能解任何电脑的开机密码
- [网络安全]教你如何防范U盘病毒
- [网络安全] 把自己的IP地址隐藏起来
- [网络安全] 六大措施保障网络安全
- [系统应用] 30秒完成清除任务
- [系统应用] 无线网络下载小技巧
- [新闻]互联网企业裁员降薪正当时
- [SEO]基础教程:关键词选择基本思路和分析过程
- [SEO]网站主要状态页细解以及与搜索引擎的关系
- [新闻]09年关于微软10大预测 Windows7火爆
- [网页技术]深入了解Access数据库的4种安全方式
- [新闻]太雷人了!十大最让人恼火的软件
- [SOA]最新调查:亚太地区SOA实施呈增加趋势
- [新闻]语摘:老外也谈中国“竞价门”
- [网页技术]PHP沉思录:Drupal的性能问题
- [新闻]尼尔森:中国网站10月流量排名报告
- [新闻]《福布斯》评出13位亿万富翁博客[组图]
- [新闻]互联网企业裁员降薪正当时
- [SEO]网站主要状态页细解以及与搜索引擎的关系
- [新闻]09年关于微软10大预测 Windows7火爆
- [新闻]微软Exchange Online时代挑战:云计算
- [新闻]Google Android:谷歌开源商业模式探索
- [数据中心管理]不容忽视:保护虚拟机环境下的数据安全
- [新闻]太雷人了!十大最让人恼火的软件
- [SOA]最新调查:亚太地区SOA实施呈增加趋势
- [新闻]语摘:老外也谈中国“竞价门”





