博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在SQL注入时保护数据库
阅读量:4202 次
发布时间:2019-05-26

本文共 630 字,大约阅读时间需要 2 分钟。

 

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来遍历参数,注入上面所提到的将会产生进程错误,并且存储进程将不会被执行。

转载地址:http://nmnli.baihongyu.com/

你可能感兴趣的文章
安装.Net Framework 4.7.2时出现“不受信任提供程序信任的根证书中终止”的解决方法
查看>>
input type=“button“与input type=“submit“的区别
查看>>
解决Github代码下载慢问题!
查看>>
C语言:字符串与指针
查看>>
使用 Intel HAXM 为 Android 模拟器加速
查看>>
“android list avd不是内部或外部命令,也不是可运行的程序”之解决办法
查看>>
用Ant实现Java项目的自动构建和部署
查看>>
在jdk1.7安装目录下jre\lib找不到tools.jar的解决办法
查看>>
Java中 public、private、protected 访问权限的区别
查看>>
Source insight 3.5的安装与卸载
查看>>
关于java.io.Serializable的使用
查看>>
基于DLNA实现iOS、Android投屏:基本概念
查看>>
基于DLNA实现iOS,Android投屏:SSDP发现设备
查看>>
基于DLNA实现iOS,Android投屏:SOAP控制设备
查看>>
基于DLNA实现iOS,Android投屏:订阅事件通知
查看>>
C语言入门经典第1课
查看>>
C语言程序设计谭浩强版 三
查看>>
C语言程序设计谭浩强版 四
查看>>
C语言程序设计谭浩强版 六
查看>>
代码开发总结
查看>>