2012-01-16 121 views
0

我有一个php应用程序,可以根据用户输入创建目录和文件。让php创建目录/文件然后使用php chmod函数将权限设置为755/644是否是一个问题?通过PHP和权限问题创建目录和文件

当我这样做,它看起来像删除这些文件的唯一方法是通过PHP。所以如果我想通过FTP删除它们,它将无法工作,因为apache/php拥有它们。

主要是,虽然我试图找出是否需要做其他任何事情,除了chmod到755/644的目录/文件,使尽可能安全的事情。

+0

什么是你需要手动删除的理由/通过FTP编辑文件?如果您确实需要经常这样做,请创建另一个PHP脚本来管理这些文件。 – 2012-01-16 22:17:06

回答

0

只是通过PHP将它们chmod到777。然后你就可以从ftp中删除文件。 755仍然允许只写入php ..

+0

谢谢,我只是想知道是否更安全的目录在755和文件在644如果PHP脚本设置权限,而不是让他们设置在777.或者是相同的事情,因为如果恶意的PHP脚本进入,它仍然可以写入/销毁文件。 – Frank 2012-01-16 22:14:18

+0

是的,它应该是安全的。如果您使用托管服务,则通过文件夹限制来保护文件。例如,你不能从你的“htdocs”文件夹出去,其他人也不能。但我不确定HTTP PUT/DELETE请求,但它可能与chmod没有任何关系。 – Kristian 2012-01-16 22:30:41

+0

而且,正如andreas所述,您可以使用一些php脚本。谷歌“PHP文件管理器”,我相信你有很多结果;) – Kristian 2012-01-16 22:33:20

0

如果您使用php来创建用户输入的目录和文件,您应该考虑不允许从它存储的位置执行php(和其他)脚本。如果您使用的是Apache Web服务器,则可以在.htaccess中完成。

将AddType text/html的.PHP的CGI特等.fcgi .fpl一个.phtml的.shtml .php2 .php3 .php4 .php5的.asp .JSP

+0

实际上,这些脚本是从它们创建的位置运行。我想,我坚持认为,如果我允许php创建文件,总会存在这样的风险,即如果某人在服务器上获得恶意的php文件,他们可能会执行或删除这些文件。或者,也许我需要将权限初始设置为777,并且有一些服务器cron作业会定期检查并在必要时将其更改为更安全的值。 – Frank 2012-01-16 22:29:42

+1

最好将所有用户上传的文件存储在特殊目录下(例如上传),并通过此目录中的.htaccess设置限制。希望你不允许用户上传.php文件。 – 2012-01-16 22:34:16

+0

那么,你应该对你的用户有很大的信任,并希望他们知道他们在做什么,并且永远不会有恶意。 – 2012-01-17 13:24:03