教您如何应用PHP开发出安全的应用程序 (1)

- 中国WEB开发者网络 (http://www.webasp.net)
-- 技术教程 (http://www.webasp.net/article/)
--- 教您如何应用PHP开发出安全的应用程序 (1) (http://www.webasp.net/article/28/27051.htm)
-- 作者:未知
-- 发布日期: 2005-11-17
    PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法, 并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。最新版本PHP5.01支持目前绝大多数数据库(Mysql、PostgreSQL、Oracle,、DB2、Sybase等)。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http: //www.php.net)自由下载。PHP拓展了WEB Server的功能,实现了Web最佳服务的后端延展界面,见图-1。



图-1 PHP拓展了WEB Server的功能


PHP全称Professional HyperText PreProcessor。以最新的PHP5.01为例支持它的WEB服务器有:Apache, Microsoft Internet information Sereve, Microsoft Personal web Server, AOL server, Netscape Enterprise 等等。

PHP是一种功能强大的语言和解释器,无论是作为模块方式包含到web服务器里安装的还是作为单独的CGI程序程序安装的,都能访问文件、执行命令或者在服务器上打开链接。而这些特性都使得PHP运行时带来安全问题。

虽然PH P是特意设计成一种比用Perl或C语言所编写的CGI程序要安全的语言,但正确使用编译时和运行中的一些配置选项以及恰当的应用编码将会保证其运行的安全性。由于我们可以在很多不同的方面利用 PHP,因此它有很多设置选项来控制其行为。

一组庞大的可选参数能够保证您可以将 PHP 用于许多不同的目的,但这同时也意味着这些参数和服务端配置的组合会带来一些安全问题。 PHP 的配置与其代码相比,有着同样的灵活性。PHP 可以用来建立完整的服务端应用程序,拥有所有外壳用户的权限;它也可以在被严格控制的环境下用作一个简单的服务端包含,仅承担很小的风险。您如何建立该环境,以及其安全性如何,在很大程度上取决于 PHP 的开发者。 注:本文所有操作在Red Hat Linux 9.0下完成。

一、 安全从头开始

在编译PHP之前,首先确保操作系统的版本是最新的,必要的补丁程序必须安装过。安装编译PHP过程中要注意的4个问题:

1、 使用Apachetoolbox整合Apache,PHP,Mysql 目前最好的web建站黄金组合是Linux+Apache+Mysql+PHP, 但是在实际工作过程中需要分别下载,安装,配置apache,php和mysql,并且需要根据具体情况修改apache的httpd.conf, php的php.ini还有mysql的配置文件,如果你还需要提供ssl功能,那还得下载正确的ssl apache模块,并定制它的.ini文件等,其中的任何步骤出现问题都会导致网站不能正确运行。

想一次完全配置成功,即使对于一个经验丰富的Linux网络管理员也比较困难。Apache Toolbox是用shell脚本写成的。Apache Toolbox可以很很方便的使你定制你的apache按您的要求在Apache支持的52个第三方的软件包以及36个模块中选择。

定制的过程完全用菜单驱动,而且都有简单的说明。所有的组件都是用源代码方式安装,在安装过程中,如果发现RPM包有问题,它还会用wget去重新下载新的可用的组件包。相信对那些网络管理员是一个有用的工具。

Apache Toolbox 可以在GUN命令行下安装,也可以在X窗口下安装,为了方便读者阅读本文以在X窗口下安装为例。在www.apachetoolbox.com下载最新的apachetoolbox安装包。包括apache2.0,mysql3.23.51,php4.3,Python 2.0、 PostgresSQLv7.1等常用建站软件和APC (一种为PHP提供Cache的模块),Apache Toolbox Apache Toolbox提供了一个简单的编译Apache方法,能让你很容易地安装Apache、 SSL,PHP, ZendOptimizer, mod_auth-nds,mod-dynvhost,WebDAV,mod_fastcgi,mod_gzip,mod_layout,mod_throttle,mod_accessref, mod_auth_sys, mod_bandwidth, mod_auth_ldap, mod_perl, openldap.等等以及最新的支持PNG格式的 gd 库。它支持完全的菜单界面。



图-2 Apachetoolbox安装界面


webasp.net