细谈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 相关文章推荐
一个odbc连mssql分页的类
Oct 09 PHP
PHP入门学习的几个不错的实例代码
Jul 13 PHP
IIS下PHP连接数据库提示mysql undefined function mysql_connect()
Jun 04 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
PHP利用APC模块实现大文件上传进度条的方法
Oct 29 PHP
phpStudy访问速度慢和启动失败的解决办法
Nov 19 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
php上传大文件设置方法
Apr 14 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
一个实用的php验证码类
Jul 06 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 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扩展CURL的用法详解
2014/06/20 PHP
php实现可用于mysql,mssql,pg数据库操作类
2014/12/13 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
PHP的Yii框架中YiiBase入口类的扩展写法示例
2016/03/17 PHP
比较完整的微信开发php代码
2016/08/02 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
PHPTree――php快速生成无限级分类
2018/03/30 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
打开超链需要“确认”对话框的方法
2007/03/08 Javascript
学习ExtJS form布局
2009/10/08 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
js的2种继承方式详解
2014/03/04 Javascript
jquery移动节点实例
2015/01/14 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
2017/08/09 jQuery
js实现每日签到功能
2018/11/29 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
[43:24]VG vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
python中MethodType方法介绍与使用示例
2017/08/03 Python
详解python持久化文件读写
2019/04/06 Python
Django密码存储策略分析
2020/01/09 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
幼儿园保育员辞职信
2014/01/12 职场文书
网上签名寄语活动留言
2014/01/18 职场文书
个性婚礼策划方案
2014/05/17 职场文书
关于建议书的格式范文
2014/05/20 职场文书
篮球友谊赛通讯稿
2014/10/10 职场文书
合作意向书范本
2019/04/17 职场文书