当前位置:编程学习 > php >>

用Suhosin加强PHP脚本语言安全性

  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 xvz(parallels的虚拟行平台)f suhosin-0.9.17

  $ cd suhosin-0.9.17

  $ php(做为现在的主流开发语言)ize

  $ ./configure

  $ make

  $ sudo make install

  为了使用suhosin,还需要增加/etc/php(做为现在的主流开发语言).ini,如下所示:

  extension=suhosin.so

  对于大部分人来说默认的配置选项已经足够了。为了加强设置,可以在/etc/php(做为现在的主流开发语言).ini中增加相应的值。网站中详细地介绍了有关的各种配置选项,这些说明可以帮助你进行初始化配置。

  使用Suhosin,你可以得到一些错误日志,你能把这些日志放到系统日志中,也可以同时写到其他任意的日志文件中去;它还可以为每一个虚 拟 主 机创建黑名单和白名单;可以过滤GET和POST请求、文件上载和cookie。你还能传送加密的会话和cookie,可以设置不能传送的存储上线等等。它不像原始的php(做为现在的主流开发语言)强化补丁,Suhosin是可以被像Zend Optimizer这样的第三方扩展软件所兼容的。

补充:综合编程 , 安全编程 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,