【发布时间】:2018-07-12 23:15:00
【问题描述】:
在我们的应用程序中,用户可以通过按下上下文菜单按钮来下载文件。目前,我们通过创建 iframe 并将其附加到具有指向服务器上文件位置的 src 属性的 dom 来实现此功能。
我们最近向应用程序添加了CSRF 保护,您可以猜到文件下载问题出现了问题。这很容易通过提供 csrf 令牌作为查询参数来解决,但最终会破坏保护方法的目的并将令牌暴露给侦听器。
有没有办法使用可配置的Http Headers 请求来触发文件下载(即按下“下载文件”按钮后触发native Save as... 对话框)?
请注意,即使数据本身不会暴露给攻击者的站点,我们也希望避免恶意页面向服务器发送多个如此繁重的请求,从而需要 CSRF 保护。
最后请记住,我们必须保持与 Internet Explorer 10 的兼容性,这可能会限制我们的选项(例如,锚元素中的 download 属性在此处不起作用)。
【问题讨论】:
标签: javascript download csrf-protection