Linux操作系统下PHP服务器安全配置技巧

http://tech.ddvip.com   2007年08月24日    社区交流

内容摘要:Linux操作系统下PHP服务器安全配置技巧

  如果还有其他的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,定义目录:

<Directory /var/www>
  Options FollowSymLinks
  php_admin_value safe_mode 1
</Directory>

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

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

<?include("index.html")?>
几个文件的属性如下:
# 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

  在浏览器请求test.php会提示如下的错误信息:

责编:豆豆技术应用

正在加载评论...