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


Posted in PHP onJune 10, 2012

例如: SQL注入攻击
XSS攻击

任意执行代码 
文件包含以及CSRF. 
}

关于SQL攻击有很多文章还有各种防注入脚本,但是都不能解决SQL注入的根本问题
见代码:

<?php 
mysql_connect("localhost","root","123456")or die("数据库连接失败!"); 
mysql_select_db("test1"); 
$user=$_post['uid']; 
$pwd=$_POST['pass']; 
if(mysql_query("SELECT * from where 
admin 
= `username`='$user' or `password`='$pwd'"){ 
echo "用户成功登陆.."; 
} eles { 
echo "用户名或密码出错"; 
} 
?>

很简单的一段代码,功能是用于检测用户名或密码是否正确,可是在一些恶意攻击者中提交一些敏感代码.后果可想而知.. post判断注入的方式有2种。
1.在form表单的文本框输入 "or‘1'=1"或者"and 1=1"
在查询数据库的语句就应该是:
SELECT admin from where login = `user`=''or‘1'=1' or `pass`=‘xxxx'
当然也不会出现什么错误,因为or在sql的语句中代表和,或的意思。当然也会提示错误。
当时我们已经发现了可以执行SQL语句之后就可以查询当前表的所有信息。例如:正确的管理员账户和密码进行登录入侵。。
修复方式1:
使用javascript脚本过滤特殊字符(不推荐,指标不治本)
如果攻击者禁用了javascript还是可以进行SQL注入攻击。。
修复方式2:
使用mysql的自带函数进行过滤。
见代码:
<?php 
// 省略连接数据库等操作。。 
$user=mysql_real_escape_string($_POST['user']); 
mysql_query("select * from admin whrer `username`='$user'"); 
?>

既然前面说道了xss攻击,我们再来说说XSS攻击以及防范吧。。
提交表单:
<form method="post" action=""> 
<intup tyep="text" name="test"> 
<intup tyep="submit" name="sub" value="提交"> 
</form>

接收文件:
if(empty($_POST['sub'])){ 
echo $_POST['test']; 
}

很简单的一段代码,在这里只是模拟了下使用场景..
加入攻击者提交
<script>alert(document.cookie);</script>
在返回的页面就应该显示当前页面的cookie信息。
我们可以运用到某些留言板上(提前是没过滤的),然后当管理员审核改条信息时盗取COOKIE信息,并发送到攻击者的空间或者邮箱。。攻击者可以使用cookie修改器进行登陆入侵了。。
当然解决方案也有很多。。下面就介绍一个最常用的方式吧。
修复方案1:使用javascript进行转义
修复方案2:使用php内置函数进行转义
代码如下:
[code]
if(empty($_POST['sub'])){
$str=$_POST['test'];
htmlentities($srt);
echo $srt;
}
[html]
好了,关于SQL注入攻击和XSS攻击的案例与修复方法就讲的差不多了。
当然还有其他的解决方法:
例如:使用php框架
还有其他的一些方法。。当然了,XSS的运用范围与攻击方式很多也很广。本文只针对php的提交方式进行过滤,还有其他的需要自己去研究 ^_^~
此文出此:Aey uhost team(team.hake.cc),转载请带上版权。

y0umer
2012/6/7

PHP 相关文章推荐
PHP面向对象编程快速入门
Oct 09 PHP
php的header和asp中的redirect比较
Oct 09 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
Jan 12 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
ThinkPHP标签制作教程
Jul 10 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
php构造函数与析构函数
Apr 23 PHP
PHP 输出缓冲控制(Output Control)详解
Aug 25 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
ThinkPHP简单使用memcache缓存的方法
Nov 15 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 PHP
逆序二维数组插入一元素的php代码
Jun 08 #PHP
PHP 年龄计算函数(精确到天)
Jun 07 #PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 #PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 #PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
Jun 07 #PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
Jun 07 #PHP
PHP 查找字符串常用函数介绍
Jun 07 #PHP
You might like
PHP Cookie的使用教程详解
2013/06/03 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
JSONP跨域请求实例详解
2016/07/04 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
详解JS实现简单的时分秒倒计时代码
2019/04/25 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
在Vue中实现随hash改变响应菜单高亮
2020/03/09 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
浅谈function(函数)中的动态参数
2017/04/30 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
django实现更改数据库某个字段以及字段段内数据
2020/03/31 Python
Python实现寻找回文数字过程解析
2020/06/09 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
《蒙娜丽莎之约》教学反思
2014/02/27 职场文书
3的组成教学反思
2014/04/30 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
手机被没收的检讨书
2014/10/04 职场文书
2014年关工委工作总结
2014/11/17 职场文书
年终工作总结范文2014
2014/11/27 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
java设计模式--原型模式详解
2021/07/21 Java/Android