看放什么网站了。
PHP是Web服务器的一个模块功能,所以要想使PHP拥有较安全的配置,首先要保证Web
服务器的安全,当然Web服务器要安全就必须先保证系统安全。PHP可以和各种Web服务器结
合,这里只讨论Apache。笔者建议以chroot方式安装启动Apache,这样即使Apache和PHP
及其脚本出现漏洞,受影响的也只有这个禁锢的系统,不会危害实际系统。但是我们使用
chroot的Apache后,会给应用带来一定的麻烦,比如连接mysql时必须用“127001”地址,
使用tcp连接而不能用localhost实现socket连接,这在效率上会稍微差一点。mail函数发
送邮件也存在一定的问题,因为phpini里的:
[mail function];
For Win32 only
SMTP=localhost,
For Win32 only
sendmail_from=me@localhostcom
这都是针对Win32平台的,所以我们需要在chroot环境下调整好sendmail。
二、PHP本身问题
1远程溢出
PHP-412以下的所有版本都存在文件上传远程缓冲区溢出漏洞,而且攻击程序已经广
泛流传,成功率非常高:
>
>
2远程拒绝服务
PHP-420和PHP-421存在PHP multipart/form-data POST请求处理远程漏洞,虽然
不能获得本地用户权限,但是也能造成拒绝服务。
3safe_mode绕过漏洞
PHP-422以下到PHP-405版本都存在PHP mail函数绕过safe_mode限制执行命令漏
洞。从405版本开始,mail函数增加了第五个参数,设计者可以突破safe_mode的限制执行
命令,其中405版本突破非常简单,只需用分号隔开后面加shell命令就可以了。
三、PHP本身的安全配置
PHP的配置非常灵活,我们可以通过phpini、>
设置了AllowOverride All或Options)进行设置,还可以在脚本程序里使用ini_set()和其他
的特定的函数进行设置,通过phpinfo()和get_cfg_var()函数可以得到配置选项的各个值。
如果配置选项是唯一PHP_INI_SYSTEM属性的,我们必须通过phpini和>
改,其修改的是PHP的Master值,但修改之后必须重启apache才能生效。其中phpini设置
的选项是对Web服务器所有脚本生效,>
本生效。
在讨论Linux系统下安全配置PHP服务器之前,我们应该了解PHP的safe_mode模式。
1safe_mode
safe_mode是唯一PHP_INI_SYSTEM属性,它必须通过phpini或h
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)