4

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

普莱斯克:

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

PHP.net:

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

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

4

2 回答 2

7

把它关掉。总是把它关掉。

它的设计早在很久以前就是为了让 PHP在大型主机上安全使用,并让主机“锁定”PHP。

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

所以直接回答你的问题:

人们什么时候应该打开它:

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

人们什么时候应该保持关闭:

总是。真的没用,所以没必要开...

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

编辑:一些参考资料

您可以对服务器执行的所有操作,都可以在安全模式下执行,包括:无论如何都可以写入网络服务器。那么有什么意义呢?

来自 PHP 的关于在 6 中删除它的邮件列表线程

Edit2:关于速度:

速度差异充其量可能是微不足道的。它只不过是一个微优化。通过编写好代码而不是担心诸如此类的特定配置选项,您将获得更大的收益。完全不用担心速度差异。正确构建您的应用程序,稍后再担心速度。更不用说前端 Web 服务器(Apache、IIS、Lighttpd、NginX 等)和 SAPI(mod_php、CGI、FastCGI 等)的选择将比 safe_mode 产生更大的差异......

于 2011-02-03T14:06:37.370 回答
2

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

但是,如果您想运行过时的脚本,这可能会有所帮助(这是一个好主意,有待讨论)。虽然它不能解决所有问题,但这些限制有助于降低风险。因此,它是像 mod_security 这样的尽力而为的解决方案。

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

于 2011-02-03T14:09:27.973 回答