正确的文件上传文件夹权限

时间:2013-02-28 10:34:18

标签: php codeigniter file-upload permissions

CI user guide中有这样一句话:

  

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

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

2 个答案:

答案 0 :(得分:3)

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

这意味着,如果网络文件位于/ home / mysite /(例如/home/mysite/index.html映射到http://mydomain.com/index.html),则上传文件夹应为/ home / uploads。

您的应用程序可以使用代码通过系统路径(/ home / uploads)访问文件,但是互联网上没有人可以直接访问它。

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

Deny from all
Options None
Options +FollowSymLinks

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

答案 1 :(得分:1)

您也可以使用.htaccess拒绝访问除您允许的文件夹以外的文件夹。至少我和我一样,并没有列出.htaccess中未列出访问权限的目录。

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