细谈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将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
PHP 作用域解析运算符(::)
Jul 27 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
php事件驱动化设计详解
Nov 10 PHP
yii2 数据库读写分离配置示例
Feb 10 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
PHP控制反转(IOC)和依赖注入(DI)
Mar 13 PHP
PHP实现数组的笛卡尔积运算示例
Dec 15 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
PHP预定义接口――Iterator用法示例
Jun 05 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 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工厂模式的好处
2013/06/18 PHP
PHP实现通过get方式识别用户发送邮件的方法
2015/07/16 PHP
在openSUSE42.1下编译安装PHP7 的方法
2015/12/24 PHP
利用PHP自动生成印有用户信息的名片
2016/08/01 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
各种常用浏览器getBoundingClientRect的解析
2009/05/21 Javascript
js打印纸函数代码(递归)
2010/06/18 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
2014/03/05 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
Python脚本实现格式化css文件
2015/04/08 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
基于python中pygame模块的Linux下安装过程(详解)
2017/11/09 Python
python实现五子棋小游戏
2020/03/25 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
PyQt5内嵌浏览器注入JavaScript脚本实现自动化操作的代码实例
2019/02/13 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
Python高级property属性用法实例分析
2019/11/19 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
Python爬虫之爬取淘女郎照片示例详解
2020/07/28 Python
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
教师开学感言
2014/02/14 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
优秀少先队员主要事迹材料
2014/05/28 职场文书
我的中国心演讲稿
2014/09/04 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
检讨书格式
2015/05/07 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书