细谈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 相关文章推荐
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 PHP
自定义session存储机制避免会话保持问题
Oct 08 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
PHP文件缓存smarty模板应用实例分析
Feb 26 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
May 11 PHP
PHP简单遍历对象示例
Sep 28 PHP
php多线程并发实现方法
Sep 30 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP获取二叉树镜像的方法
Jan 17 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
《雄兵连》《烈阳天道》真的来了
2020/07/13 国漫
PHP学习 变量使用总结
2011/03/24 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
Zend Framework动作助手Redirector用法实例详解
2016/03/05 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
VS2008中使用JavaScript调用WebServices
2014/12/18 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
2015/01/23 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
React Native AsyncStorage本地存储工具类
2017/10/24 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
python操作xml文件示例
2014/04/07 Python
Python内置函数OCT详解
2016/11/09 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
20个常用Python运维库和模块
2018/02/12 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
python 基于wx实现音乐播放
2020/11/24 Python
CSS3 实现发光边框特效
2020/11/11 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
人事主管的岗位职责
2013/11/16 职场文书
小班评语大全
2014/05/04 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
Springboot中如何自动转JSON输出
2022/06/16 Java/Android