【问题标题】:Creating Directories and Files through PHP and Permissions Issues通过 PHP 和权限问题创建目录和文件
【发布时间】:2012-02-11 19:16:11
【问题描述】:

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

当我这样做时,似乎删除这些文件的唯一方法是通过 php.ini 文件。因此,如果我想通过 FTP 删除它们,它将无法正常工作,因为 apache/php 拥有它们。

主要是,虽然我试图弄清楚除了 chmod 到 755/644 之外是否需要对目录/文件执行其他任何操作,以使事情尽可能安全。

【问题讨论】:

  • 您需要通过FTP手动删除/编辑文件的原因是什么?如果您确实需要经常这样做,请创建另一个 PHP 脚本来管理文件。

标签: php permissions


【解决方案1】:

只需通过 php 将它们更改为 777。然后你就可以从 ftp 中删除文件了。 755 仍然只允许为 php 编写..

【讨论】:

  • 谢谢,我只是想知道如果 php 脚本设置权限,将目录设置为 755,文件设置为 644 是否更安全,而不是将它们设置为 777。或者是同样的事情,因为如果恶意 php 脚本进入,它仍然可以写入/销毁文件。
  • 是的,它应该是安全的。如果您使用主机,则文件通过文件夹限制受到保护。例如,您不能从“htdocs”文件夹中出去,其他人也不能。但我不确定 HTTP PUT/DELETE 请求,但它可能与 chmod 无关..
  • 而且,正如 andreas 提到的,您可以使用某种 php 脚本。谷歌“php文件管理器”,我相信你有很多结果;)
【解决方案2】:

如果您使用 php 从用户输入创建目录和文件,您应该考虑禁止从存储位置执行 php(和其他)脚本。如果您使用的是 apache web-server,这可以在 .htaccess 中完成。

添加文本/html .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp

【讨论】:

  • 实际上,这些脚本是从它们创建的位置运行的。我想,如果我允许 php 创建文件,我想,如果有人以某种方式在服务器上获得了恶意 php 文件,他们就可以执行或删除这些文件,这样的风险总是存在的。或者,也许我需要将权限最初设置为 777,并且有一些服务器 cron 作业会定期检查并在必要时将其更改为更安全的值。
  • 最好将所有用户上传的文件存储在特殊目录下(例如uploads),并在该目录下通过.htaccess 设置限制。希望您不允许用户上传 .php 文件。
  • 好吧,那么您应该非常信任您的用户,并希望他们知道自己在做什么,并且永远不会有恶意。
猜你喜欢
  • 2012-07-26
  • 2010-09-24
  • 2015-04-23
  • 2011-07-29
  • 2019-09-27
  • 2013-10-12
  • 2017-01-15
  • 2017-11-03
  • 1970-01-01
相关资源
最近更新 更多