2013-02-28 162 views
2

CI user guide有这样一行:正确的文件夹上传权限

你需要一个目标文件夹为您上传的图片。在你的CodeIgniter安装的根目录下创建文件夹 叫上传和 设置为777

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

+0

保持上传文件夹不在公共访问中。然后制作一个控制器方法,再次检索文件,如http://ellislab.com/codeigniter/user-guide/helpers/download_helper.html所述 - 您还可以控制谁在下载更安全的文件。 – jtheman 2013-02-28 10:41:27

回答

3

根据您想要的安全级别,777可能不是最好的选择(这是最简单的)。 Web服务器运行的用户数量与该文件夹的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不会直接提供这些文件)。

1

您也可以使用.htaccess来拒绝对您允许的文件夹的访问。至少我也和我一样,没有在.htaccess中访问的目录不能提供给用户。

另一种安全的方法是使用/文件夹外的文件夹/ p​​ublic_html/ 该文件夹外的目录很难从外部访问。