51Testing软件测试论坛
标题:
举例说明对数据库防SQL注入
[打印本页]
作者:
ruanyongjie
时间:
2008-11-7 11:15
标题:
举例说明对数据库防SQL注入
SQL注入是防止数据库攻击的一个有效策略。攻击者将注入一个SQL语句到另外一个语句中,这个通常会损坏你的数据库。有数据库接口的Web站点通常在SQL注入的时候容易受到攻击,因为它们是基于动态的SQL;下面是一个简单的例子:
在一个ASP页面中会请求用户输入名字和密码,然后将下面的字符串发送到数据库中:
SELECT FROM users WHERE username =
’whatever’ AND password = ’mypassword’
这看起来很安全,实际上不是,一个用户可能会这样输入他的名字:
’ OR 1>0 –
当把这个输入到SQL语句中的时候,结果可能会象这样:
SELECT FROM users WHERE username
= ’’ OR 1>0 -- AND password = ’’
这个注入语言将通过语句暴露密码。这将导致所有的用户名都会在用户列表中,所以,任何用户都可以进入到你的系统中。
最简单阻止注入分类是分析SQL串并移动语句之前的任何“--”的发生。
同时,你要小心注入的时候含有分号,因为分号是给SQL语句分界。如果一个用户的名字是下面这个:
’ OR 1>0 ; DELETE Customers ; --
如果一个用户怀有恶意,那么他可以使用多种方法看穿你的系统,但是,最简单的方法就是避免动态的SQL,用存储过程来代替。使用SQL来遍历参数,注入上面所提到的将会产生进程错误,并且存储进程将不会被执行。
作者:
行走在杭州
时间:
2008-11-17 10:42
终于很明确的理解了一些sql注入的问题
作者:
新手笑哈哈
时间:
2008-11-17 11:33
学习
作者:
DeViLIvy
时间:
2008-12-8 10:34
很好!浅显易懂。期待更加深入的分析!
作者:
chang7735594
时间:
2009-4-5 11:41
hai可以,不过不怎么懂 想学习 但不知道从那里下手。。。
作者:
小玲子110600131
时间:
2009-8-7 11:56
非常谢谢楼主,正在找这方面的资料,看了楼主的分析,懂了不少了
作者:
zling19
时间:
2010-2-25 10:33
感谢楼主,学习了
作者:
lanfish319
时间:
2010-3-9 11:09
谢谢分享 学习了~
作者:
mcy16
时间:
2010-4-6 15:26
学习了并转载了哈哈
作者:
Beng
时间:
2010-8-3 15:16
不错不错,学习了,谢谢
作者:
ananbo
时间:
2010-12-2 16:55
原来楼主是高人。。。。 总是看见楼主的头像。。。。
作者:
ymz163
时间:
2010-12-14 14:54
楼主能简单讲一下B/S架构的安全测试吗,多谢啦,正急需呢!
作者:
caiw0418
时间:
2010-12-17 17:35
B/S架构的安全测试 我也需要
作者:
he_jian
时间:
2011-1-19 14:42
xie xie
作者:
矢影
时间:
2011-2-16 10:00
谢谢牛柱~~~
作者:
chunyan.wang
时间:
2011-2-28 18:06
谢了
作者:
yandaju
时间:
2011-7-31 13:32
辛苦了!
作者:
moyiyun
时间:
2011-11-4 10:11
为人民服务的好楼主!
作者:
ct_051
时间:
2012-3-14 10:44
学习了 但是太笨了 没弄懂
作者:
sumiliy
时间:
2012-3-17 11:06
刚开始学习,还是不会
作者:
guazhuying
时间:
2013-1-13 11:31
楼主的例子简单易懂,感谢楼主分享~~
作者:
michealbjw
时间:
2016-1-13 15:48
学习了,期待更多
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2