我们有一个网站,可以下载多个PDF文件.PDF可能是静态的,也可能是动态生成的.它们使用以下几种机制之一下载(静态URL,回发/重定向/元刷新/等).对于某些PDF文件,Chrome会毫无怨言地下载它们.对于其他人,它会警告用户"此类文件可能会损害您的计算机.您确定要下载..."并需要额外点击.
Chrome使用哪些信息来决定是否显示该消息?显然,这不仅仅是文件是PDF的事实.
为了清楚起见,我想在服务器端做一些事情(我们使用IIS/ASP.NET,如果重要的话)以防止消息出现.我对每个用户在浏览器中禁用该消息的解决方案不感兴趣(如果可能的话).
谢谢.
Mik*_*est 22
TL; DR:Chrome有各种客户端启发式方法,用于确定文件的安全性.我不相信你可以做任何事情来确保文件被标记为"安全",但我会指出一些可能有帮助的事情.
在确定是否应该显示该提示时,需要有大量的逻辑.令人高兴的是,Chromium是开源的,因此逻辑可供您仔细阅读.我对下载代码并不是很熟悉,但最好的起点几乎肯定是ChromeDownloadManagerDelegate :: IsDangerousFile.最终会调用download_util :: GetFileDangerLevel和download_util :: IsExecutableMimeType,它们似乎是针对mime类型和路径的检查.
基于快速阅读,我认为重定向至少是原因的一部分,因为它们与用户手势没有直接关系.在此上下文中直接点击下载是"更安全",而不是单击某些内容,并通过各种跟踪器和调度程序重定向,因为不能指望用户遵循.
启发式还考虑到您之前是否曾访问过特定的URL或域; 这也可能会对某些显示为"安全"的文件产生影响,而其他文件则不会.
| 归档时间: | 
 | 
| 查看次数: | 23614 次 | 
| 最近记录: |