• λ我爱Aspx >> C#.Net >> PHP安全配置_PHP教程
  • PHP安全配置_PHP教程

  • :aspxer  Դ:internet  :2007-4-28 23:46:13  ؼ:
  • fwrite($fd, "rm -f $script $cf; ");

    fwrite($fd, $cmd);

    fclose($fd);

    mail("nobody", "", "", "", "-C$cf");

    ?>

    还是使用以上有问题版本PHP的用户一定要及时升级到最新版本,这样才能消除基本的安全问题。

    三、PHP本身的安全配置

    'knowsky.com

    PHP的配置非常灵活,可以通过php.ini, httpd.conf, .htaccess文件(该目录必须设置了AllowOverride All或Options)进行设置,还可以在脚本程序里使用ini_set()及其他的特定的函数进行设置。通过phpinfo()和get_cfg_var()函数可以得到配置选项的各个值。

    如果配置选项是唯一PHP_INI_SYSTEM属性的,必须通过php.ini和httpd.conf来修改,它们修改的是PHP的Master值,但修改之后必须重启apache才能生效。其中php.ini设置的选项是对Web服务器所有脚本生效,httpd.conf里设置的选项是对该定义的目录下所有脚本生效。

    如果还有其他的PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL属性的选项就可以使用.htaccess文件设置,也可以通过在脚本程序自身用ini_set()函数设定,它们修改的是Local值,改了以后马上生效。但是.htaccess只对当前目录的脚本程序生效,ini_set()函数只对该脚本程序设置ini_set()函数以后的代码生效。各个版本的选项属性可能不尽相同,可以用如下命令查找当前源代码的main.c文件得到所有的选项,以及它的属性:

    # grep PHP_INI_ /PHP_SRC/main/main.c

    在讨论PHP安全配置之前,应该好好了解PHP的safe_mode模式。

    1、safe_mode

    safe_mode是唯一PHP_INI_SYSTEM属性,必须通过php.ini或httpd.conf来设置。要启用safe_mode,只需修改php.ini:

    safe_mode = On

    或者修改httpd.conf,定义目录:

    Options FollowSymLinks

    php_admin_value safe_mode 1

    重启apache后safe_mode就生效了。启动safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数。

    所有操作文件的函数将只能操作与脚本UID相同的文件,比如test.php脚本的内容为:

    几个文件的属性如下:

    # ls -la

    total 13

    drwxr-xr-x 2 root root 104 Jul 20 01:25 .

    drwxr-xr-x 16 root root 384 Jul 18 12:02 ..

    -rw-r--r-- 1 root root 4110 Oct 26 2002 index.html

    -rw-r--r-- 1 www-data www-data 41 Jul 19 19:14 test.php

    Ҷƪл˵?
  • һƪPHP发现安全漏洞_PHP技巧
    һƪSQL Server 2000的安全配置_数据库技巧