如何在SQL注入时保护数据库
2008-08-03 09:10
267 查看
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来遍历参数,注入上面所提到的将会产生进程错误,并且存储进程将不会被执行。
相关文章推荐
- 如何在SQL注入时保护数据库
- 如何在SQL注入时保护数据库
- 防止sql注入方法 如何防止java中将MySQL的数据库验证密码加上 ' or '1'= '1 就可以出现万能密码 的PreparedStatement
- 如何保护的你的开源数据库:GreenSQL可助一臂之力
- 如何在Linux VPS中保护MySQL与MariaDB数据库安全
- 【VMCloud云平台】SCDPM(四)如何保护数据库(一)
- 黄聪:SQL注入代码实例。如何使用SQL注入检查漏洞、猜测数据库表明、列名、帐号密码
- 【VMCloud云平台】SCDPM(四)如何保护数据库(二)
- 【VMCloud云平台】SCDPM 如何保护数据库
- C#编写程序操作数据库如何防止SQL注入漏洞的发生
- 如何将数据库中的表导入到PowerDesigner
- Hibernate如何提升数据库查询的性能
- 如何正确且成功破解跨平台数据库管理工具DbVisualizer?(图文详解)
- mybatis是如何防止SQL注入的
- 数据库-如何理解第一范式、第二范式、第三范式;1NF,2NF,3NF,BCNF
- 如何优化Linux下MySQL 5.0【涉及discuz论坛数据库too many connections问题】
- web中,如何读取Word内容(包含表格,但不包含图片)并且显示在页面中或保存进数据库中
- DetailsView中如何进行数据验证,如何处理数据库的异常
- (五)乱入之如何使用MNIST数据库
- 如何创建数据库及表和外键