php是一种非常流行的网站脚本语言,但是它本身所固有的安全性是非常薄弱。本文讲述了php增强计划(hardened-php project)和新的suhosi计划,suhosin提供了增强的php的安全配置。
php是带有争论地但又是最流行的一种网站脚本语言。它之所以流行,是因为它低廉的价格,然而,这低廉的价格导致用php写的网站应用程序越来越多的同时也越来越多的展现出php本身在安全上的脆弱,这种安全特性显示出php是极不可靠,不过同时对这个脚本语言本身而言它又是非常灵活的,使用它就能很容易的实现代码,不过这些代码都是臃肿的且不安全的,虽然是这样它还是一直都拥有很多的使用者。你可以根据实际情况来假设,一次又一次,各种应用软件都体现了这种脆弱性:容易受到sql注入、跨站脚本、任意执行指令等等的攻击。
因为象safe_mode和open_basedir这样内置的php安全措施将被忽略,php增强计划创建的php更具有安全性,同时也对php进行校验检查。最初,这些是由增强的php补丁完成的,这些补丁需要修补并重新编译php自身。最近,php增强计划发布了一个名为suhosin的新工程。
sohosin包括有两部分:第一部分是php的补丁,这个补丁强化了zend引擎自身,以免可能产生缓冲溢出,也可以防止相关的弱点。第二部分是suhosin的扩展,这是一个php的独立使用模块。这两部分可以一起工作,或者是扩展部分单独工作。
开发人员不希望为了达到安全性而总去维护他们自己的php安装设置和他们当然更喜欢直接使用销售商提供的linux分布系统上php,使用扩展模块能提供更多php本身所不能具有的安全特点。
扩展模块很容易安装;它也能通过pecl安装,或者是下载后通过编译安装:
$ tar xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
$ ./configure
$ make
$ sudo make install
为了使用suhosin,还需要增加/etc/php.ini,如下所示:
extension=suhosin.so
对于大部分人来说默认的配置选项已经足够了。为了加强设置,可以在/etc/php.ini中增加相应的值。网站中详细地介绍了有关的各种配置选项,这些说明可以帮助你进行初始化配置。
使用suhosin,你可以得到一些错误日志,你能把这些日志放到系统日志中,也可以同时写到其他任意的日志文件中去;它还可以为每一个虚拟主机创建黑名单和白名单;可以过滤get和post请求、文件上载和cookie。你还能传送加密的会话和cookie,可以设置不能传送的存储上线等等。它不像原始的php强化补丁,suhosin是可以被像zend optimizer这样的第三方扩展软件所兼容的。
新闻热点
疑难解答