细谈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 无极分类(递归)实现代码
Jan 05 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
PHP中使用hidef扩展代替define提高性能
Apr 09 PHP
PHP发送短信代码分享
Aug 11 PHP
PHP导出Excel实例讲解
Jan 24 PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
Sep 26 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
Nov 23 PHP
PhpStorm连接服务器并实现自动上传功能
Dec 09 PHP
PHP新手指南
Apr 01 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 fsockopen伪造post与get方法的详解
2013/06/14 PHP
一组PHP可逆加密解密算法实例代码
2014/01/21 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
PHP实现网站应用微信登录功能详解
2019/04/11 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
破解Session cookie的方法
2006/07/28 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
javascript实现俄罗斯方块游戏的思路和方法
2015/04/27 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
微信小程序个人中心的列表控件实现代码
2020/04/26 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
python和php哪个更适合写爬虫
2020/06/22 Python
追悼会子女答谢词
2014/01/28 职场文书
店长职务说明书
2014/02/04 职场文书
质量保证书范本
2014/04/29 职场文书
大学生活动总结模板
2014/07/02 职场文书
新员工入职欢迎词
2015/01/23 职场文书
保送生自荐信范文
2015/03/26 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
2019邀请函格式及范文
2019/05/20 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers