我正在开发一个应用程序(LAMP),用户可以将文件上传到服务器,但不能与其他用户共享文件。所以,我的问题是实现一种安全机制,确保用户A无法访问用户B上传的文件。
我的方法是:
你能看到这种方法的任何缺点吗?还有更好的选择吗?
答案 0 :(得分:1)
您可以创建类似download.php?id=1234
的内容,而不是对文件进行硬性引用,只需从数据库中检查1234
是否具有下载文件的权限,并且不显示用户的物理路径所有
使用HTTP标头,您可以强制用户使用您所需的文件名(存储在数据库中)下载文件。允许用户从物理路径直接访问他们的文件不是一个好主意,如果你尝试在每个请求时使用.htaccess
挂钩,那确实会更加昂贵。
大多数系统会考虑生成一些随机字符串或GUID,您无法通过随机更改字符来访问其他人的文件。即在Facebook图像../187170_697610597_4628627_q.jpg
中,有一个复杂的URL,用户可以直接访问,但不能通过更改几个数字来猜测另一个图像URL,这太难了但不安全,不符合您的要求。