如何在Linux中启用和禁用PHP安全模式

时间:2020-03-05 15:24:46  来源:igfitidea点击:

PHP安全模式是一种尝试解决共享服务器安全问题。
当安全模式打开时,PHP检查当前脚本的所有者是否与文件函数或者其目录匹配要操作的文件的所有者。
例如:

-rw-rw-r-- 1 sam sam 33 May 1 19:20 test.php
-rw-r--r-- 1 root root 1116 Jan 26 18:01 /etc/passwd

运行test.php:

<?php
readfile('/etc/passwd');
?>

在启用安全模式时,会导致此错误:

Warning: SAFE MODE Restriction in effect. The script whose uid is 600 is not
allowed to access /etc/passwd owned by uid 0 in /home/www/script.php on line 2.

但是,安全模式限制往往导致许多问题和性能降低。
启用安全模式时,"Joomla安装"等内容管理系统将无法工作。
安全模式的核心问题是其不一致; Web脚本所需的一些基本功能将无法启用PHP安全模式。
由于限制,此功能已被弃用为PHP 5.3.0并删除PHP 5.4.0。

为了启用或者禁用安全模式,我们需要编辑PHP配置文件PHP.ini。

1)找到系统php.ini文件的位置

执行以下命令以查找php.ini位置:

php –i | grep php.ini

2)在PHP.ini中添加以下行

启用safe_mode,

safe_mode = On

禁用safe_mode,

safe_mode = Off

3)在phpinfo.php的帮助下测试它

phpinfo.php脚本的内容:

<?php
phpinfo();
?>

PHP Open_Basedir和Disable_Functions提供的其他安全措施可以用作Safe_Mode的替代方案。