什么理由应该让人们开启/关闭PHP Safemode?

时间:2011-02-03 13:50:06

标签: php performance safe-mode

关于PHP安全模式的问题:
默认情况下,它在PLESK共享主机帐户环境中打开: 虽然在我的网站上似乎工作正常,但也许它会更快/更好地关闭时工作? 我不太了解下面的文字,特别是PHP的解释:

PLESK:

  

默认情况下,PHP配置为在具有功能限制的安全模式下运行。在启用安全模式的情况下,某些Web应用程序可能无法正常工作:如果站点上的应用程序因安全模式而失败,请关闭安全模式

PHP.net:

  

自PHP 5.3.0起,此功能已被弃用。非常不鼓励依赖此功能。 PHP安全模式试图解决共享服务器安全问题。尝试在PHP级别解决此问题在架构上是不正确的,但由于Web服务器和操作系统级别的替代方案不太现实,许多人,特别是ISP,现在使用安全模式。

问题1:何时/出于什么原因,人们会将安全模式打开? 问题2:何时/出于什么原因,人们应该将Safemode关闭?

2 个答案:

答案 0 :(得分:7)

将其关闭。永远不要离开。

作为一种使PHP 安全在大众主机上使用的方法,并让主机“锁定”PHP,它的设计方式又回来了。

但随着时间的推移,人们意识到这并没有真正起作用,并且无论如何都没有真正解决问题。有更好的系统级方法来保护服务器。所以PHP正在删除下一个主要版本的功能,并且已经弃用了它。

所以直接回答你的问题:

大家什么时候开启它:

从不。它并没有真正起作用,它以一种理智的方式限制了你可以用PHP做的事情,所以不要打开它。

人们应该什么时候关闭它:

始终。它没有真正起作用,所以没有必要打开它......

无论如何,这是我的0.02美元......

修改:部分参考

您可以对服务器执行的所有操作,您可以使用安全模式,包括:It's possible to write to the webserver anyway。那有什么意义呢?

A mailing list thread from PHP about removing it in 6

Edit2 :关于速度:

速度差异最多可能是微不足道的。它只不过是微观优化。通过编写代码可以获得更大的收益,而不是担心像这样的特定配置选项。根本不用担心速度差异。正确构建应用程序,并在以后担心速度。更不用说前端Web服务器(Apache,IIS,Lighttpd,NginX等)和SAPI(mod_php,CGI,FastCGI等)的选择将比safe_mode产生更大的差异......

答案 1 :(得分:2)

安全模式为文件系统相关功能和进程处理功能(以及一些完全不相关的cURL选项)添加了一些限制。它现在被认为是毫无意义的,因为它可以通过使用Perl或Python或bash-CGI来绕过共享主机服务器。专业的主机使用suexec和mod_chroot。

如果您想要运行过时的脚本,那将是有益的(这是一个好主意可供讨论)。虽然它不能解决所有问题,但这些限制可以帮助减轻风险。因此,这是一个尽力而为的解决方案,如mod_security。

就速度而言;它是可测量但不重要的。