2012-03-04 136 views
0

我是新手,为网站编写代码。该网站允许用户上传文件,如个人资料照片或其他图片。这些文件保存在unix文件系统中,并且找到这些图像的URL存储在MySQL数据库中。Web服务器上的文件权限?

似乎我可以让用户上传文件的唯一方法是给任何使用chmod的人提供写入权限。否则,它会抱怨它没有写入权限。但他们不应该能够写任何他们想要的或覆盖其他用户的东西。同样,为了允许用户查看他们有权访问的图像,他们需要在文件系统上具有读取权限。但是现在这意味着任何具有该图片的网址的人都可以看到图片,对吗?这不是我想要的。

有没有解决这个矛盾的方法?或者我错误地思考了这个问题?谢谢你的帮助。

回答

0

您需要管理应用程序中的权限,而不是将本地文件系统的任意部分直接暴露给客户端。您的应用程序应该决定他人可以看到什么文件或写入数据的位置。您不应该信任客户端的数据(文件名等)......理想情况下,使用系统生成的名称将文件存储在磁盘上,并在数据库中存储人类可读的名称。

0

SunStar9,

既然你已经在使用MySQL数据库来存储文件系统上的图像的URL,为什么不只是图像本身存储为BLOB(二进制大对象)?

这是一个广为接受的设计惯例,允许用户将二进制数据上传到网站。

您是否在使用PHP,Java,Ruby/Rails或其他来开发您的网站?根据您使用的内容,可能会有文件上传/管理插件或模块,这些插件或模块将帮助您开发您正在尝试执行的操作,如果您确定要使用文件系统来存储图像数据。

相关问题