我正在尝试创建一个像这样的文件夹结构:
公共网站目录的一个级别。唯一的唯一键(除了user_id本身)是用户电子邮件,因为他们的电子邮件是他们的用户名,所以......
问题:人们是否可以访问这些目录并获取所有用户的电子邮件地址?这个想法有多糟糕?您建议哪些替代方案?
感谢。
答案 0 :(得分:1)
一定要确保使用哈希而不是纯文本电子邮件地址。这是必须的。
除此之外,我认为这是安全的(并且不安全),因为解决方案可能是基于默默无闻的安全性(即您的安全性完全依赖于没有人知道URL的事实 - 但如果他们这样做,他们会可以无限制地访问它们。)有许多潜在的漏洞 - 用户可以为URL添加书签;它可以嵌入页面的某个地方;它可以存储在服务器,浏览器和代理日志中......
答案 1 :(得分:0)
看一下PHP dir
函数:
http://php.net/manual/en/class.dir.php
如果您希望用户可以通过网络公开访问这些文件夹,为什么要将这些文件夹放在网络根目录之上?
此外,您可以考虑对文件夹名称使用某种哈希值,1)因为没有人希望公开显示他们的电子邮件地址,2)泄露内部user_id可能会导致漏洞利用。
答案 2 :(得分:0)
正如佩卡刚回答的那样;对电子邮件地址进行哈希处理可能是个好主意,因为链接可能会被发布到论坛或类似网站,然后邮件可能会被电子邮件地址搜寻器抓取。我认为地址的简单哈希(例如md5)将(几乎)解决这个问题。
请参阅this thread,了解如何防止目录列表,以及如果Apache方式不起作用该怎么办。
答案 3 :(得分:0)
将电子邮件哈希以用作文件夹名称并将其放在网络根目录之上。
您可以使用简单的autentication来访问这些文件,并使用php文件来读取和发送 他们到浏览器。