细谈php中SQL注入攻击与XSS攻击

前端之家收集整理的这篇文章主要介绍了细谈php中SQL注入攻击与XSS攻击前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

例如: sql注入攻击 @H@R502_448@0@XSS攻击 @H@R_502_448@_0@<div class="codetitle"><a style="CURSOR: pointer" data="11458" class="copybut" id="copybut11458" onclick="doCopy('code11458')"> 代码如下:

<div class="codebody" id="code11458"> @H@R502_448@_0@任意执行代码 @H@R502_448@_0@文件包含以及CSRF. @H@R502_448@0@} @H@R_502_448@_0@
关于sql攻击有很多文章还有各种防注入脚本,但是都不能解决sql注入的根本问题 @H@R502_448@_0@见代码: <div class="codetitle"><a style="CURSOR: pointer" data="3173" class="copybut" id="copybut3173" onclick="doCopy('code3173')"> 代码如下:
<div class="codebody" id="code3173"> @H@R502_448@_0@<?PHP @H@R502_448@_0@MysqL_connect("localhost","root","123456")or die("数据库连接失败!"); @H@R502_448@_0@MysqL_selectdb("test1"); @H@R_502_448@_0@$user=$post['uid']; @H@R_502_448@_0@$pwd=$POST['pass']; @H@R_502_448@_0@if(MysqLquery("SELECT * from where @H@R_502_448@0@admin @H@R_502_448@0@= username='$user' or password='$pwd'"){ @H@R_502_448@_0@echo "用户成功登陆.."; @H@R502_448@0@} eles { @H@R_502_448@_0@echo "用户名或密码出错"; @H@R502_448@0@} @H@R_502_448@0@?> @H@R_502_448@0@
@H@R_502_448@_0@很简单的一段代码,功能是用于检测用户名或密码是否正确,可是在一些恶意攻击者中提交一些敏感代码.后果可想而知.. post判断注入的方式有2种。 @H@R502_448@0@1.在form表单的文本框输入 "or‘1'=1"或者"and 1=1" @H@R_502_448@_0@在查询数据库的语句就应该是: @H@R502_448@0@SELECT admin from where login = user=''or‘1'=1' or pass=‘xxxx' @H@R_502_448@_0@当然也不会出现什么错误,因为or在sql的语句中代表和,或的意思。当然也会提示错误。 @H@R502_448@_0@当时我们已经发现了可以执行sql语句之后就可以查询当前表的所有信息。例如:正确的管理员账户和密码进行登录入侵。。 @H@R502_448@0@修复方式1: @H@R_502_448@0@使用javascript脚本过滤特殊字符(不推荐,指标不治本) @H@R_502_448@_0@如果攻击者禁用了javascript还是可以进行sql注入攻击。。 @H@R502_448@0@修复方式2: @H@R_502_448@_0@使用MysqL自带函数进行过滤。 @H@R502_448@_0@见代码: @H@R502_448@_0@<div class="codetitle"><a style="CURSOR: pointer" data="81146" class="copybut" id="copybut81146" onclick="doCopy('code81146')"> 代码如下:
<div class="codebody" id="code81146"> @H@R502_448@_0@<?PHP @H@R502_448@_0@// 省略连接数据库等操作。。 @H@R502_448@_0@$user=MysqL_real_escape_string($POST['user']); @H@R_502_448@_0@MysqLquery("select * from admin whrer username='$user'"); @H@R_502_448@0@?> @H@R_502_448@0@
@H@R_502_448@0@既然前面说道了xss攻击,我们再来说说XSS攻击以及防范吧。。 @H@R_502_448@0@提交表单: @H@R_502_448@_0@<div class="codetitle"><a style="CURSOR: pointer" data="20667" class="copybut" id="copybut20667" onclick="doCopy('code20667')"> 代码如下:
<div class="codebody" id="code20667"> @H@R502_448@0@<form method="post" action=""> @H@R_502_448@0@<intup tyep="text" name="test"> @H@R_502_448@0@<intup tyep="submit" name="sub" value="提交"> @H@R_502_448@0@ @H@R_502_448@0@ @H@R_502_448@_0@接收文件: @H@R502_448@_0@<div class="codetitle"><a style="CURSOR: pointer" data="2104" class="copybut" id="copybut2104" onclick="doCopy('code2104')"> 代码如下:<div class="codebody" id="code2104"> @H@R502_448@_0@if(empty($POST['sub'])){ @H@R_502_448@_0@echo $POST['test']; @H@R_502_448@0@} @H@R_502_448@0@ @H@R_502_448@_0@很简单的一段代码,在这里只是模拟了下使用场景.. @H@R502_448@0@加入攻击者提交 @H@R_502_448@0@ @H@R_502_448@_0@在返回的页面就应该显示当前页面的cookie信息。 @H@R502_448@_0@我们可以运用到某些留言板上(提前是没过滤的),然后当管理员审核改条信息时盗取COOKIE信息,并发送到攻击者的空间或者邮箱。。攻击者可以使用cookie修改器进行登陆入侵了。。 @H@R502_448@_0@当然解决方案也有很多。。下面就介绍一个最常用的方式吧。 @H@R502_448@0@修复方案1:使用javascript进行转义 @H@R_502_448@_0@修复方案2:使用PHP内置函数进行转义 @H@R502_448@_0@代码如下: @H@R502_448@0@[code] @H@R_502_448@_0@if(empty($POST['sub'])){ @H@R_502_448@_0@$str=$POST['test']; @H@R_502_448@0@htmlentities($srt); @H@R_502_448@0@echo $srt; @H@R_502_448@0@} @H@R_502_448@0@[html] @H@R_502_448@_0@好了,关于sql注入攻击和XSS攻击的案例与修复方法就讲的差不多了。 @H@R502_448@_0@当然还有其他的解决方法: @H@R502_448@_0@例如:使用PHP框架 @H@R502_448@_0@还有其他的一些方法。。当然了,XSS的运用范围与攻击方式很多也很广。本文只针对PHP的提交方式进行过滤,还有其他的需要自己去研究 ^^~ @H@R_502_448@0@此文出此:Aey uhost team(team.hake.cc),转载请带上版权。 y0umer @H@R_502_448@_0@2012/6/7

SQL注入攻击

猜你在找的PHP相关文章