2014-10-09 112 views
-2

我刚刚在使用WAMP Server开发的PHP应用程序中犯了一个错误。为什么WAMP服务器删除我的系统文件?

我的WAMP/WWW文件夹位于我的D:\磁盘内,我也有我的个人数据。我的应用程序由于无法生成动态路径,而删除了我的所有音乐,我的照片和其他个人文件。

我的意思是......什么?这怎么可能?我需要一个恢复工具来恢复这些数据。

如何防止PHP在www的文件夹之外触摸任何东西,使其不再发生?这是一场灾难。

+0

在文件系统上使用适当的权限,将Apache设置为在对文件系统有限访问的特定用户下运行......并且在执行可以删除整个文件堆的代码时通常要非常小心。 :) – Fluffeh 2014-10-09 09:55:29

+1

如果WAMP服务器以* you *身份运行,即作为拥有所有这些文件的同一用户运行,则它可以执行任何您可以执行的操作。通过让它作为一个不同的/较少特权的用户运行来避免这种情况。我也希望这是一个为你备份的教训。 :-3 – deceze 2014-10-09 09:55:34

+0

我这样做修改文件?或者只需右键单击,然后更改可执行文件的权限? – JuanBonnett 2014-10-09 09:56:58

回答

2

限制PHP可以访问的文件到指定的目录树,包括文件本身。

http://php.net/manual/en/ini.core.php#ini.open-basedir

使用open_basedir限制特定目录中的文件操作,像这样(在网站的虚拟主机文件)...

php_admin_value open_basedir "C:/WampDeveloper/Temp/;C:/WampDeveloper/Websites/www.example.com/webroot/" 

但如果你是通过命令行delete一个或bat文件(例如,您没有直接使用PHP文件功能),解决此问题的唯一方法是将Apache设置为仅在WAMP文件夹中设置权限的自定义帐户下运行。

+0

不错的答案。但要小心,它很容易使WAMPServer以及任何Apache/PHP安装完全无法使用此参数。 – RiggsFolly 2014-10-10 08:49:31