PHP可以限制在某些文件夹中工作吗?
我几乎可以肯定,PHP总是能够到服务器上的任何地方,并对任何文件做任何事情,但我想知道是否有办法限制它只能在一个文件夹中工作,什么是需求?PHP可以限制在某些文件夹中工作吗?
我的意思是说我们有50个WordPress安装,50个文件夹。如果来自不受信任的插件的病毒只影响1次安装 - 它会立即转到另外49次(因为PHP可以扫描服务器上的所有目录)。
有什么办法可以防止这种情况发生?如果病毒分解成1个WordPress安装 - 我希望它只停留在那里。
我的托管服务提供商表示,如果不购买其他服务器,这是不可能的。你有什么意见?
用PHP-FPM可以chroot PHP工人(绝对分离),并给每一个PHP应用程序自己的用户和PHP配置(超时,内存限制等)。您不必使用chroot来拥有唯一的用户。通过简单的文件权限,您可以使Webroot对任何人都不可读,而不是该Webroot的专用用户。此外,这不是特定于Apache,适用于任何其他支持fastcgi的网络服务器。
更容易一些设置方式可以在PHP的open_basedir进行中继(有如何安全open_basedir
是因为PHP的开发人员经常可修复此功能有关bugs争议)
open_basedir似乎是针对“自动”攻击(共享主机)的一个很好的解决方案。只有真正的黑客会检查WP的index.php删除那东西:)它肯定不安全,但至少它应该限制所有自动化病毒。谢谢! – Atadj 2012-08-03 13:05:00
@Flow:你可以在php.ini中设置open_basedir。 – nkr 2012-08-03 13:29:14
如果你在你的apache的'
您可以安装suEXEC并以FastCGI模式运行PHP。使用此配置,您可以在不同的用户下运行PHP实例。
我没有尝试这个教程自己,但它看起来不错,我说:How to set up PHP FastCGI with suEXEC on Debian
这将是举办超实用的功能供应商。如果可能的话,这将使我的工作绝对安全。感谢您确认@SiGanteng – Atadj 2012-08-03 10:17:53
[神奇的Google搜索词是“chroot”](http://www.google.com/search?q=chroot) – DaveRandom 2012-08-03 10:25:11
@DaveRandom感谢您告诉我!我实际上设法找到了一些支持这个的托管服务提供商。 – Atadj 2012-08-03 10:34:04