网络安全经典讲解sql注入防范方法

网络安全经典讲解sql注入防范方法

ID:30919031

大小:148.18 KB

页数:17页

时间:2019-01-04

网络安全经典讲解sql注入防范方法_第1页
网络安全经典讲解sql注入防范方法_第2页
网络安全经典讲解sql注入防范方法_第3页
网络安全经典讲解sql注入防范方法_第4页
网络安全经典讲解sql注入防范方法_第5页
资源描述:

《网络安全经典讲解sql注入防范方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、经典讲解SQL注入原理及防范方法伴随着Web2.0.社交网络、微博等一系列新型互联网产品的兴起,基于Web环境的互联网应用越来越广泛,Web攻击的手段也越来越多样,Web安全史上的一个重要里程碑是大约1999年发现的SQL注入攻击,之后的XSS,CSRF等攻击手段愈发强大,Web攻击的思路也从服务端转向了客户端,转向了浏览器和用户。SQL注入常见攻击技巧SQL注入攻击是Web安全史上的一个重要里程碑,它从1999年首次进入人们的视线,至今已经有十几年的历史了,虽然我们现在已经有了很全面的防范对策,但是它的威力仍然不容小觑

2、,SQL注入攻击至今仍然是Web安全领域中的一个重要组成部分。以PHP+MySQL为例,让我们以一个Web网站中最基本的用户系统来做实例演示,看看SQL注入究竟是怎么发生的。1、创建一个名为demo的数据库:CREATEDATABASE'demo'DEFAULTCHARACTERSETutf8COLLATEutf8_general_ci;2、创建一个名为user的数据表z并插入1条演示数据:CREATETABLE'demo'.'user'(、uid'INT(11)NOTNULLAUTO_INCREMENTPRIMARYK

3、EYCOMMENT'用户uid','username'VARCHAR(20)NOTNULLCOMMENT,用户名'password'VARCHAR(32)NOTNULLCOMMENT'用户密码,)ENGINE=INNODB;INSERTINTO'demo'.'user'(、uid','username、,'password')VALUES1plhwin1,MD5('123456'));实例一通过传入username参数,在页面打印出这个会员的详细信息,编写userinfo・php程序代码:

4、tent-type:text/html;charset=UTF-81);$username=isset($_GET[Username1])?$_GET[Username1]:11;$userinfo=array();if($username){//使用mysqli驱动连接demo数据库$mysqli=newmysqli("localhost","root”,*'root",'demo');$sql=HSELECTuid,usernameFROMuserWHEREusername='{$username}1//mysqli

5、multi_query支持执行多条MySQL语句$query=$mysqli->multi_que“y($sql);if($query){do{$result=$mysqli->store_result();while($row=$resuIt->fetch_assoc()){$userinfo[]=$row;}if(!$mysqli->more_results()){break;}}while($mysqli・>next_result());}}echo'

1,print_r($userinfo,1)J

6、e>1;上面这个程序要实现的功能是根据浏览器传入的用户名参数,在页面上打印出这个用户的详细信息,程序写的这么复杂是因为我采用了mysqli的驱动以便能使用到multi_query方法来支持同时执行多条SQL语句,这样能更好的说明SQL注入攻击的危害性。假设我们可以通过http://localhost/test/userinfo.php?username=plhwin这个URL来访问到具体某个会员的详情,正常情况下,如果浏览器里传入的username是合法的,那么SQL语句会执行:SELECTuid^usernameFRO

7、MuserWHEREusername='plhwin'但是,如果用户在浏览器里把传入的username参数变为plhwin';SHOWTABLES--hack,也就是当URL变为http://localhost/test/userinfo.php?username二plhwin';SHOWTABLES--hack的时候,此时我们程序实际执行的SQL语句变成了:SELECTuidjusernameFROMuserWHEREusername='plhwin1;SHOWTABLES--hack注意:在MySQL中.最后连续的两

8、个减号表示忽略此SQL减号后面的语句,我本机的MySQL版本号为5.6.12,目前几乎所有SQL注入实例都是直接采用两个减号结尾”但是实际测试z这个版本号的MySQL要求两个减号后面必须要有空格才能正常注入”而浏览器是会自动删除掉URL尾部空格的,所以我们的注入会在两个减号后面统一添加任意一个字符或单词,本篇文章的S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。