细谈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获取数组中重复数据的两种方法
Jun 28 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
Oct 25 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
在CentOS系统上从零开始搭建WordPress博客的全流程记录
Apr 21 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
CI框架扩展系统核心类的方法分析
May 23 PHP
PHP获取指定日期是星期几的实现方法
Nov 30 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
浅谈php中变量的数据类型判断函数
Mar 04 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
调试php程序的简单步骤
Oct 04 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 前一天或后一天的日期
2008/06/28 PHP
php实现mysql同步的实现方法
2009/10/21 PHP
php中防止伪造跨站请求的小招式
2011/09/02 PHP
PHP 导出Excel示例分享
2014/08/18 PHP
PHP explode()函数的几个应用和implode()函数有什么区别
2015/11/05 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
DD_belatedPNG,IE6下PNG透明解决方案(国外)
2010/12/06 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
BootstrapTable请求数据时设置超时(timeout)的方法
2017/01/22 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
Pythont特殊语法filter,map,reduce,apply使用方法
2016/02/27 Python
Python+request+unittest实现接口测试框架集成实例
2018/03/16 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
基于Python+QT的gui程序开发实现
2020/07/03 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
体育教育毕业生自荐信
2013/11/21 职场文书
九年级科学教学反思
2014/01/29 职场文书
消防标语大全
2014/06/07 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
前台文员岗位职责
2015/02/04 职场文书
测量员岗位职责
2015/02/14 职场文书
学生退学证明
2015/06/23 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python