【问题标题】:Uploading files/creating folder outside webroot with mkdir and fopen over https connection使用 mkdir 和 fopen 通过 https 连接在 webroot 之外上传文件/创建文件夹
【发布时间】:2011-11-01 07:58:54
【问题描述】:

我正在开发一个网络应用程序,它允许注册用户将文件上传到 webroot 之外的文件夹。基本工作流程如下:

  • 用户通过 ssl 证书注册以保护他/她的信息
  • 在 webroot 之外创建一个具有 777 权限的文件夹,以便他/她可以将文件上传到该文件夹​​中
  • 用户上传文件
  • 文件临时存储在脚本的工作文件夹中,转换为文本文件,移动到 webroot 之外的用户文件夹中,然后删除临时文件。

看起来我什至无法在 webroot 之外创建用户目录,更不用说将文件上传到该目录了。我在 ssl 连接上使用mkdir。我启用了allow_url_fopenallow_url_include,但仍然没有运气。我很确定 openssl 已启用。有没有办法解决这个问题?

提前致谢, 尤利亚。

【问题讨论】:

  • 一些代码示例可能会有很大帮助。

标签: php ssl permissions https fopen


【解决方案1】:

除了将新用户目录创建为 777 之外,在其中创建新用户目录的 web 根目录之外的目录必须是 web 服务器用户可写的。

假设如下结构:

root
  |->users
  |    |->new user1
  |    |->new user2
  |->www docroot

root/users 上设置所有权以拥有Web 服务器用户组并使其可写。这假定该目录已由 root 拥有,但如果它在托管服务上,则更改为现有所有者用户名。还假设apache 是网络服务器用户。

chown root:apache /root/users
chmod 770 /root/users

【讨论】:

  • 原来我可以通过 http 连接使用 mkdir 创建一个文件夹,但不能通过 webroot 外部目录中的 https 创建一个文件夹。但是,如果新创建的文件夹在 httpdocs 中,那么我使用 http 还是 https 都没有关系。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-06
  • 2019-05-15
  • 2010-11-22
  • 2012-09-12
相关资源
最近更新 更多