我是编写网站代码的新手。该网站允许用户上传文件,例如个人资料图片或其他图片。这些文件保存在unix文件系统中,找到这些图像的URL存储在MySQL数据库中。
似乎我可以让用户上传文件的唯一方法是使用chmod为任何人提供写访问权限。否则它会抱怨它没有写权限。但他们不应该写任何他们想要的东西或覆盖其他用户的东西。同样,为了允许用户查看他们有权访问的图像,他们需要对文件系统具有读取权限。但现在这意味着任何拥有该图片网址的人都可以看到图片,对吗?那不是我想要的。
这个矛盾有解决方案吗?或者我是否错误地思考了这个问题?谢谢你的帮助。
答案 0 :(得分:0)
您需要管理应用程序中的权限,而不是将本地文件系统的任意部分直接暴露给客户端。您的应用程序应决定某人可以查看哪些文件或在何处写入数据。您不应该信任来自客户端的数据(文件名等)...理想情况下,使用系统生成的名称将文件存储在磁盘上,并在数据库中存储人类可读的名称。
答案 1 :(得分:0)
SunStar9,
由于您已经在使用MySQL数据库将图像的URL存储在文件系统上,为什么不将图像本身存储为BLOB(二进制大对象)?
这通常是一种广为接受的设计实践,允许用户将二进制数据上传到网站。
您使用PHP,Java,Ruby / Rails或其他东西来开发您的网站吗?根据您使用的内容,可能有文件上传/管理插件或模块,如果您确定要使用文件系统来存储图像数据,它们将帮助您开发您尝试执行的操作。