整理了这两天的笔记
时间:2007-10-04
来源:互联网
-----------------------------------------------------------------------------------------------------------------------------------------
一直感觉PHP足够安全,今天心血来潮,在百度搜了一下PHP入侵,发现真发现不少.想想自己以前的教训,就在blog总结一下,半搜半学,也是仅供参考;
1.针对整型的过滤,应该算是SQL注入的一种,刷金币的好方法,我曾经因此饱受摧残,其实做起来非常简单,
如果传过去$m=10-1000程序会通过验证,因此而执行的话sql的话,你不仅减不去$m,反而增加了990.
原因是intval的转换会发生问题,丢失后面半截,intval有位数限制,如果转换较大数会发生溢出:
执行echo intval(7777777777);实际上输出: -812156815
解决:只要不把针对整型的处理写在条件中就可以了 如:$num = abs(intval(trim($num)));然后再进行判断.
2.针对SQL的注入.
现在网站上大部分的SQL注入都是针对ASP的,PHP少之又少,主要的方法就是单引号截断,构造SQL,注释掉SQL
PHP提供的转义函数可以很容易的应对,我以前写的转义函数
现在好像比较流行 COOKIE注入,实际和GET/POST注入差不多,COOKIE保存在本地,可以随意修改,所以危险性更大,尤其有些验证页面根据用户名读取库中密码然后比对,如果没有处理好,很容易被绕过:
修改cookie的值
我用的是PHP5,默认开启魔法引用,所以第一页面无效,第二页面是关闭魔法引用后的结果,PHP默认是安全的.
所谓的COOKIE 注入就是这个样子的,当然可以构造更复杂的SQL ,但程序只要过滤就没有问题;
还有一些其它的攻击方法和这个差不多,都是注入,不过不一定非是SQL,比如忘记处理变量,使任何人操纵include,或者引入的脏的文件等,但我感觉只要过滤做的好就基本没有问题,永远要过滤用户提交的数据是在PHPCHINA培训时老师告诉俺的,但也要兼顾性能,过滤的越多,越安全,性能越低.
解决:只要使用转义和为SQL的变量加上单引号,基本上可以防御注入
3.XSS攻击
目前相当流行,我一听CSS还以为是样式表的漏洞,BS一下,防御还是很容易的,针对程序本身的攻击,还是要做html和JS标签的过滤,另外,因为COOKIE的作用域,可以在其它子目录获得,这样还要做好同一域下其它文件的安全,如果一个地方有问题,基本上全都有问题.以前很不理解为什么discuz进后台还要再输一次同样的密码,其实这就是为了防止XSS攻击的请求伪造,包括一些管理功能增加确认操作,也都是这个原因,如果一个管理人员执行index.php?action=del&id=xxx这样一个操作就可以直接删除id=xxx的帖子,那么一个某个用户发表文章,内容是一张图片<img src=”index.php?action=del&id=xxxx />,当管理人员浏览此帖时,图片没看到,id=xxxx的帖子反而被删了,再如一些改密码的操作,更是危险.安全一点做法还是前后台分开.
前几个月比较震憾的就是PW的附件文件名XSS漏洞,资迅比较落后昨天晚上才知道.05年那会儿建论坛的时候就用的是PW,功能挺强大的, 看了下代码
$atc_attachment_name=addslashes($atc_attachment_name);增加了转义,像PW这样NB的论坛,为了追求效率,都是自己用正则写的转义函数,需要转义的才转义,这样节省,俺写可就没那么顾虑了,不管那个页面,不管需不需要,统统将POST和GET全部处理一遍,这样绝对安全.宁可错杀不可放过
4.SESSION 攻击
PHPSESSID是服务器识别SESSION的唯一标识,每一次向服务器请求都带PHPSESSID,如果没有这个标识的话,PHP会尝试用串中读取,这样就有可能导致PHPSESSID的固定和劫持
A
输出同样的$_SESSION[‘name’]却有不同结果,我是同步刷新的,可见SESSION只与存于COOKIE中的PHPSESSID有关;页面跳到B页面时COOKIE中带有PHPSESSID值;
[ 本帖最后由 月黑风高 于 2007-10-28 16:26 编辑 ]
作者: 月黑风高 发布时间: 2007-10-04
:)
作者: luzhou 发布时间: 2007-10-04

作者: hotbone 发布时间: 2007-10-04
作者: xlight 发布时间: 2007-10-04

作者: 一条尸体 发布时间: 2007-10-04
作者: naodai 发布时间: 2007-10-09
作者: forest 发布时间: 2007-10-10
作者: yiqieqie 发布时间: 2007-10-10
作者: 逆雪寒 发布时间: 2007-10-10
作者: PHPChina 发布时间: 2007-10-29
作者: softly 发布时间: 2007-10-30
作者: power_cheung 发布时间: 2007-10-30
好!学习
作者: xiaoxiao0503 发布时间: 2007-10-30
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28