Chrome最近的更新开始阻止从我们网站下载XLSX文件。
我已经阅读了Chrome关于如何确定某个文件是否潜在有害的文档和指南,但是它没有提到如何解决除了联系他们之外的问题。我们的文件和网站符合他们制定的所有准则。他们的大部分文档都基于可执行文件的下载,因此不清楚这些信息如何影响普通文件的下载。
该站点和文件都使用HTTPS从同一主机提供服务。下载由链接到API的锚标记驱动,该API提供文件。
其他提供相同数据的生成CSV文件或PDF文件的类似API未受影响。
我还修改了我们的文件生成方式,以输出XLS文件而不是XLSX文件,但这些也被阻止了。
以下是响应头,据我所知,与内容类型相关的下传或内容类型方面的所有内容都是正确的,因此我不认为Chrome会使用这些来阻止文件。
Cache-Control: must-revalidate, private
Connection: keep-alive
Content-disposition: attachment; filename="test-file.xlsx"
Content-Type: application/xlsx
Date: Fri, 17 Jul 2020 16:04:41 GMT
Expires: -1
Server: nginx
transfer-encoding: chunked
X-DNS-Prefetch-Control: off
X-Frame-Options: SAMEORIGIN
我还确认了这些文件实际上并不危险,它们包含简单的Excel数据,没有注入任何奇怪的内容或被篡改。
我们也尝试了各种下载方法,直接锚点链接、表单提交、二进制大对象等,结果都被阻止了。
是否有特定的请求/响应头、下载方法或标志我没有注意到,可以防止Chrome阻止这些文件的下载?
更新
我确认这个问题影响了83.x版本的Chrome以及最新版本Version 84.0.4147.89
感谢@Alex的信息,我们已确认Linux或Windows版本的Chrome不存在此问题,仅在OSX存在。
这个问题早些时候消失了20-30分钟,然后又回来了。
用户报告称这个问题从Chrome 80+就一直存在。