为了账号安全,请及时绑定邮箱和手机立即绑定

将下载的文件保存到磁盘时的浏览器事件

将下载的文件保存到磁盘时的浏览器事件

慕工程0101907 2019-10-31 13:11:24
我有敏感文件要下载给用户,每个用户只能下载给定文件一次。如果下载失败,我希望允许重新下载,但不允许其他方式。仅仅依靠在服务器上记录/处理文件下载请求是不够的-我需要确定性地知道文件何时完成以及在客户端是否就位,因为我的许多用户都在频繁掉线的环境中工作。最有效的方法是浏览器从“另存为...”对话框中暴露出一个“文件已保存”事件,该事件可能会链接到下载页面上的JavaScript函数(该事件可以发回到服务器上)。但是,直觉表明,如果浏览器公开了此功能,则可能会存在安全漏洞,因为它会在沙盒外潜入。我不确定这是否有可能。我在该领域中发现 了 其他 几个问题 ,但是对此问题一无所获。有任何想法吗?编辑:我不应该在原始问题中使用“安全性”一词,对不起触发红色鲱鱼。编辑2:我的“安全性”措辞误导了人们,使他们陷入离题的技术安全性问题,但是你们两个都证实了我的怀疑,即“不,对此没有浏览器支持”。我正在用答案标记第一位评论者,因为他的第一句话符合我的要求。谢谢大家
查看完整描述

3 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

为什么可以“一次下载”文件很重要?一旦下载了文件,就可以将其复制,那么让一位用户多次下载文件确实存在安全问题吗?

如果没有,您可以这样做吗?

  1. 生成唯一的URL以下载给定的文件。(如有必要,请使用GUID进行混淆)

  2. 将该URL与USER INFO(浏览器类型,IP地址等)和TIME WINDOW关联。仅允许从该用户和在窗口期间进行下载。

  3. 该窗口应足够长,以使用户注意到传输失败并重试一次或两次,但不再重试。

最终结果是:

  1. 您可以合理地确定文件仅由预期的收件人下载。

  2. 您可以确定收件人只能在短时间内下载文件。

  3. 同一用户可以多次下载文件,但是谁在乎呢?这与对第一个文件进行本地复制没有什么不同。

如果您真的很担心,请记录每个下载请求并为已下载多次的文件运行计划报告。如果发现有任何问题,则可以检查安全日志,与用户交谈等。


查看完整回答
反对 回复 2019-10-31
  • 3 回答
  • 0 关注
  • 435 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号