天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧安全 >> 正文

流行的PHP虚拟主机安全配置

  《网络安全进阶笔记》第2章构建个性化的进阶平台。本章适用于日常系统的安全配置。通过构建虚拟安全测试平台,配置ASP、PHP、JSP安全测试环境,确保虚拟主机安全。本节为大家介绍流行的PHP虚拟主机安全配置。

  流行的PHP虚拟主机安全配置

  PHP最初是被称作Personal Home Page,后来随着PHP成为一种非常流行的脚本语言,名称也随之改变了,叫作Professional HyperText PreProcessor。以PHP 4.2为例,支持它的Web服务器有Apache、Microsoft IIS、Microsoft PWS、AOLserver、Netscape Enterprise等。它是一种跨平台的服务器端的嵌入式脚本语言,大量地借用了C、Java和Perl语言的语法,并耦合PHP自己的特性,使Web开发者能够快速地写出动态生成页面。还有一点,PHP是完全免费的,不用花钱,用户可以从PHP官方站点(http://www.php.net)自由下载。而且可以不受限制地获得源码,甚至可以加进自己需要的特色功能。

  在PHP的安全调试实践中,使用过PHP和MySQL的结合,可以生成后门木马;就PHP本身而言,它还存在远程溢出、远程拒绝服务、safe_mode绕过漏洞以及PHP本身的安全配置问题。例如:PHP 4.1.2以下的所有版本都存在文件上传远程缓冲区溢出漏洞,而且攻击程序已经广泛流传;PHP 4.2.0和PHP 4.2.1存在PHP multipart/form-data POST请求处理远程漏洞,虽然不能获得本地用户权限,但是也能造成拒绝服务。因此,除了保证IIS、Apache等Web服务器的安全,还要从PHP本身的安全等方面着手,如果发现某个PHP版本存在安全问题,一定要及时升级到最新版本。在开始讲解这些安全问题之前,用户必须对PHP的调试环境有一个比较详细的了解。

  对于PHP的应用,使用Linux操作系统下的Apache+PHP+MySQL配置可以达到比较满意的效果,理由很简单,PHP的原型就是基于Linux系统开发的一个Web服务工具,虽然也为了方便移植到Window系统,但是却有相当部分的功能和性能不能完全发挥。不过,对于已经习惯使用Windows系统的安全爱好者来说,Windows系统的普及性决定了Windows下的测试环境仍然是首选的整合。默认情况下,IIS是不支持PHP的,手工配置IIS的PHP调试环境相对繁琐,而且还不一定能保证配置成功。因此,很多安全爱好者原本希望测试PHP脚本,却陷入了环境配置的无尽烦恼中。那么,如何才能让IIS支持PHP呢?下面介绍一种方法,只需要简单几步就能在IIS中配置好PHP调试环境。

  (1)登录http://www.php.net/downloads.php,下载最新的PHP for Windows版本。本例所测试的是PHP 5.0.4 installer这个版本。

  (2)安装这个软件。这时,软件会提示选择需要配置的IIS版本。当然,我们也可以选择安装Apache等Web服务器,这样也可以直接在其上安装PHP。选择后,直接单击Next按钮进入下一步,如图2.36所示。

  图2.36 设置PHP调试环境的参数

  (3)完成安装。软件会提示安装成功的提示。在这样的环境下,我们就可以开始对PHP程序进行安全测试了。现在,在"Internet服务管理器"中,右击网站目录,选择"属性",在网站目录属性对话框的"主目录"页面中,单击"配置"按钮,弹出"应用程序配置"对话框,在"应用程序映射"页面,就可以看到PHP程序的配置文件了。

  小知识:如果需要其他的扩展功能,可以直接下载PHP的zip安装包,解压缩到C:\PHP目录下。这可是一个最简单直接的办法了,这样很多功能都可以使用了。如果要使用MySQL数据库,还要打开C:\WINNT下的php.ini文件,找到extension_dir = "./",改为extension_dir = "c:/php/ext",找到";extension=php_MySQL.dll"将";"去掉,改为"extension=php_MySQL.dll"。这样就可以直接调用MySQL的功能模块了。

  (4)安装MySQL程序。打开http://www.MySQL.com/downloads/index.html下载推荐的MySQL数据库稳定版本。安装完毕,软件会提示选择Service Name和设置Windows的环境变量,如图2.37所示。

  图2.37 设置PHP数据库调试环境

  然后,设置默认的管理员密码。安装完毕。MySQL的执行性能非常高,运行速度非常快,并且非常容易使用,是一个优秀的免费数据库。

  在PHP下面用浏览器打开http://localhost/testdb.php,如果输出"success",表示数据库连接正确。testdb.php的代码如下:

  (5)测试phpMyAdmin管理程序。需要下载phpMyAdmin这个程序。首先,打开http://www.phpmyadmin.net网站,找到下载区,开始下载phpMyAdmin管理程序。然后,将程序拷贝到IIS的某个虚拟目录下。打开后的phpMyAdmin界面如图2.38所示。

  (点击查看大图)图2.38 phpMyAdmin界面

  完成上述环境搭建之后,我们重点关注一下PHP配置的一些安全问题。PHP的配置非常灵活,可以通过php.ini、httpd.conf、.htaccess文件进行设置,还可以在脚本程序里使用ini_set()及其他的特定的函数进行设置。例如,设置注入(sql_inject)问题时,要求程序员对所有用户提交的要放到SQL语句的变量进行过滤。即使是数字类型的字段,变量也要用单引号括起来,MySQL自己会把字串处理成数字。在MySQL里不要给PHP程序高级别权限的用户,只允许对自己的库进行操作。

本文来源:博客 作者:清华大学出版社

相关文章
没有相关文章
声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行