【问题标题】:Correct file upload folder permission正确的文件上传文件夹权限
【发布时间】:2013-02-14 12:10:35
【问题描述】:

CI user guide 中有这样一行:

您需要为上传的图片设置一个目标文件夹。创建一个 CodeIgniter 安装根目录下名为 uploads 和 将其文件权限设置为 777。

当我开发真正的 Web 应用程序时,它的安全性如何?例如:社交网络,我想上传用户的个人资料图片。当用户想要上传私人图片时,我想我会遇到隐私问题。

【问题讨论】:

  • 保持上传文件夹不被公众访问。然后按照此处ellislab.com/codeigniter/user-guide/helpers/… 的描述创建一个再次检索文件的控制器方法 - 好处还在于您可以更安全地控制谁在下载什么文件。

标签: php codeigniter file-upload permissions


【解决方案1】:

根据您想要的安全级别,777 可能不是最佳选择(它是最简单的)。网络服务器运行的用户对文件夹有 rwx,如果你想真正安全,该文件夹不应该在你的 webroot 下。

这意味着,如果 web 文件位于 /home/mysite/ 中(例如 /home/mysite/index.html 映射到 http://mydomain.com/index.html ),那么上传文件夹应该是 /home/uploads 。

您的应用程序可以使用代码通过系统路径 ( /home/uploads ) 访问文件,但互联网上的任何人都不能通过这种方式直接访问它。

或者,如果您不能执行上述操作(例如,因为您在共享主机上),您可以使用 .htaccess(放置在上传文件夹中)获得相同的效果,方法是放置以下规则:

Deny from all
Options None
Options +FollowSymLinks

(再次注意,您的应用需要使用系统路径,因为 Apache 无法直接提供这些文件)。

【讨论】:

    【解决方案2】:

    您还可以使用 .htaccess 来拒绝对您允许的文件夹以外的文件夹的访问。至少我对我的也是如此,并且 .htaccess 中未列出供访问的目录对用户不可用。

    另一种安全的方法是使用 /public_html/ 之外的文件夹 此文件夹之外的目录几乎无法从外部访问。

    【讨论】:

      猜你喜欢
      • 2011-01-19
      • 2011-04-08
      • 2011-10-04
      • 2014-10-23
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 2019-04-11
      • 2018-10-04
      相关资源
      最近更新 更多