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 xvzf suhosin-0.9.17
$ cd suhosin-0.9.17
$ phpize
【php语言网站如何加强安全性?】$ ./configure
$ make
$ sudo make install
为了使用suhosin , 还需要增加/etc/php.ini , 如下所示:
extension=suhosin.so
对于大部分人来说默认之配置选项已经足够了 。为了加强设置 , 可以在/etc/php.ini中增加相应之值 。网站中详细地介绍了有关之各种配置选 项 , 这些说明可以帮助你进行初始化配置 。
使用Suhosin , 你可以得到一些错误日志 , 你能把这些日志放到系统日志中 , 也可以同时写到其他任意之日志文件中去;它还可以为每一个虚拟主机创 建黑名单和白名单;可以过滤GET和POST请求、文件上载和cookie 。你还能传送加密之会话和cookie , 可以设置不能传送之存储上线等等 。它不 像原始之PHP强化补丁 , Suhosin是可以被像Zend Optimizer这样之第三方扩展软件所兼容之 。
下面是我写的一个操作方法:
wget -c http://soft.vpser.net/web/suhosin/suhosin-patch-5.2.10-0.9.7.patch.gz
gzip -d ./suhosin-patch-5.2.10-0.9.7.patch.gz
cd php-5.2.10
patch -p 1 -i ../suhosin-patch-5.2.10-0.9.7.patch
编译的时候
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-discard-path --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-mime-magic --enable-suhosin


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。