在CI 用户指南中有这样一行:
您需要为上传的图像设置一个目标文件夹。在 CodeIgniter 安装的根目录下创建一个名为 uploads 的文件夹,并将其文件权限设置为 777。
当我开发真正的 Web 应用程序时,它有多安全?例如:社交网络,我想上传用户的个人资料图片。我想当用户想要上传私人图片时,我会遇到隐私问题。
在CI 用户指南中有这样一行:
您需要为上传的图像设置一个目标文件夹。在 CodeIgniter 安装的根目录下创建一个名为 uploads 的文件夹,并将其文件权限设置为 777。
当我开发真正的 Web 应用程序时,它有多安全?例如:社交网络,我想上传用户的个人资料图片。我想当用户想要上传私人图片时,我会遇到隐私问题。
根据您想要的安全级别,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 无法直接提供这些文件)。
您还可以使用 .htaccess 拒绝对您允许的文件夹以外的文件夹的访问。至少我对我的和 .htaccess 中未列出访问权限的目录做了同样的事情,用户无法使用。
另一种安全的方法是使用 /public_html/ 外部的文件夹 外部几乎无法访问该文件夹外部的目录。