创建安全的临时删除文件链接的最佳方法是什么?
假设没有用户帐户,但有人上传了文件,后来想要删除它。
使用 key 哈希为他们生成删除链接:
example.com\page\myfile?delete=4Qcp4wTq2UQFR3NiRpGgXCsgQVqT
如果查询哈希与数据库中的哈希匹配,则 PHP/Laravel 将删除该文件和数据库记录:
File::delete($file);
$record->delete();
Google 云端硬盘使用 28 个随机字符 URL 来实现安全文件共享。这就是我的想法,但我不确定实际上是否应该这样做,或者是否需要更多步骤。
某人或机器人猜测该网址或意外访问该网址的可能性有多大?
key 散列是否也应该与 session ID 匹配,然后在 session 过期后不再处于事件状态?
最佳答案
恕我直言,如果您没有用户帐户(因此没有身份验证),查询字符串中的 token 是一个很好的解决方案,可能是唯一的解决方案。
如果 token 足够长,那么某人就不太可能有时间和资源来猜测您的 token 。此时唯一的弱点是向用户分发 token (即邮件可以被其他人阅读)。
如果您需要 token 过期,只需在存储 token 的同一个表中添加一个字段“expire_at”,以检查 token 有效性。如果有人删除 cookie, session 可能会丢失,这样我就不会使用它。
关于php - 创建安全 key 哈希删除链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42590151/