如何对php程序中的常见漏洞进行攻击
来历:Chinaasp
之所以翻译这篇文章,是因为今朝关于CGI平安性的文章都是拿Perl作为例子,而专门介绍ASP,PHP或者JSP平安性的文章则很少。Shaun Clowes的这篇文章斗劲周全地介绍了PHP的平安问题,原文可以在http://www.securereality.com.au/stu...arlet.txt找到。
因为原文斗劲长,而且有相当一部门是介绍文章的布景或PHP的基本常识,没有涉及到PHP平安方面的内容,是以我没有翻译。如不美观你想体味这方面的常识,请参考原文。
文章首要年夜全局变量,远程文件,文件上载,库文件,Session文件,数据类型和轻易犯错的函数这几个方面剖析了PHP的平安性,而且对若何增强PHP的平安性提出了一些有用的建议。
好了,废话少说,我们言归正传!
[全局变量]
PHP中的变量不需要事先声明,它们会在第一次使用时自动建树,它们的类型也不需要指定,它们会按照上下文情形自动确定。年夜轨范员的角度来看,这无疑是一种极其便利的措置体例。很显然,这也是快速开发说话的一个很有用的特点。一旦一个变量被建树了,就可以在轨范中的任何处所使用。这个特点导致的结不美观就是轨范员很少初始化变量,事实下场,当它们第一次建树时,他们是空的。
很显然,基于PHP的应用轨范的主函数一般都是接管用户的输入(主若是表单变量,上载文件和Cookie等),然后对输入数据进行措置,然后把结不美观返回到客户端浏览器。为了使PHP代码访谒用户的输入尽可能轻易,现实上PHP是把这些输入数据看作全局变量来措置的。
例如:
<FORM METHOD="GET" ACTION="test.php">
<INPUT TYPE="TEXT" NAME="hello">
<INPUT TYPE="SUBMIT">
</FORM>
很显然,这会显示一个文本框和提交按钮。当用户点击提交按钮时,“test.php”会措置用户的输入,当“test.php”运行时,“$hello”会包含用户在文本框输入的数据。年夜这里我们应该看出,抨击袭击者可以按照自己的意愿建树肆意的全局变量。如不美观抨击袭击者不是经由过程表单输入来挪用“test.php”,而是直接在浏览器地址栏输入http://server/test.php?hello=hi&set...?敲矗?恢故恰?/a>$hello”被建树,“$setup”也被建树了。
译者注:这两种体例也就是我们凡是说的“POST”和“GET”体例。
下面的用户认证代码吐露了PHP的全局变量所导致的平安问题:
<?php
if ($pass == "hello")
$auth = 1;
...
if ($auth == 1)
echo "some important information";
?>
膳缦沔的代码首先搜检用户的密码是否为“hello”,如不美观匹配的话,设置“$auth”为“1”,即经由过程认证。之后如不美观“$suth”为“1”的话,就会显示一些主要信息。
概况看起来是正确的,而且我们中有相当一部门人是这样做的,可是这段代码犯了想当然的错误,它假定“$auth”在没有设置值的时辰是空的,却没有想到抨击袭击者可以建树任何全局变量并赋值,经由过程近似“http://server/test.php?auth=1”的方...且丫?现す?摹?/a>
是以,为了提高PHP轨范的平安性,我们不能相信赖何没有明晰界说的变量。如不雅察看序中的变量良多的话,这可是一项很是艰难的使命。
一种常用的呵护体例就是搜检数组HTTP_GET[]或POST_VARS[]中的变量,这依靠于我们的提交体例(GET或POST)。当PHP设置装备摆设为打开“track_vars”选项的话(这是缺省值),用户提交的变量就可以在全局变量和膳缦沔提到的数组中获得。
可是值得声名的是,PHP有四个分歧的数组变量用来措置用户的输入。HTTP_GET_VARS数组用来措置GET体例提交的变量,HTTP_POST_VARS数组用于措置POST体例提交的变量,HTTP_COOKIE_VARS数组用于措置作为cookie头提交的变量,而对于HTTP_POST_FILES数组(斗劲新的PHP才供给),则美全是用户用来提交变量的一种可选体例。用户的一个请求可以很轻易的把变量存在这四个数组中,是以一个平安的PHP轨范应该搜检这四个数组。 (责任编辑:admin)
更多相关资讯
相关文章
更多>>- 用libtemplate实现静态网页生成(01-16)
- 用PHP连mysql和oracle数据库性能(01-16)
- PHP中上传大体积文件时需要的(01-16)
- PHP中实现进程间通讯(01-16)
- PHP利用COM对象访问SQLServer、(01-16)
- 如何对php程序中的常见漏洞进(01-16)
- PHP应用提速面面观(01-16)
- PHP 中的一些经验积累(01-16)
- PHP 和 MySQL 开发的 8 个技巧(01-16)
- 用PHP 4.2书写安全的脚本(01-16)

腾讯QQ
微软MSN
阿里旺旺
移动飞信
360安全卫士
360免费杀毒
搜狗输入法
千千静听
酷我音乐盒
PPS
QQ影音
暴风影音
迅雷
115U蛋
WinRAR
115浏览器
火狐浏览器
一键还原
Photoshop
Flashplayer
PDF 阅读器


