当我单击以通过Firefox下载文件时,会出现一个对话框,询问我是否要将该文件保存在某个地方,或者下载后立即将其打开。对话框窗口中的“开始”按钮将被禁用,并且直到对话框获得焦点大约一秒钟后才会启用。该对话框不是模态对话框,如果我将焦点放在另一个窗口上,则“确定”按钮将被禁用,并且直到该窗口保持焦点一秒钟后才会再次启用。设计,并问我为什么她不能仅单击“确定”立即下载-我回答我一直认为这是安全功能。现在,我考虑了一下,现在还不确定它可以防止什么行为。我本来以为这可能会通过迫使下载窗口至少保持打开状态至少足够长的时间以查看正在发生的事情,从而防止某些恶意网站秘密下载文件-但是网站应该可以在后台秘密下载内容无论如何。无论我认为大多数用户都会在某个时候单击“从现在起自动执行此操作”框,因此无论如何都无法受到保护...

那么,这是否是安全功能?如果是这样,它有什么防护措施?

评论

我有点以为这是由Firefox开发特定代码的人效率低下引起的一些奇怪的缓慢现象。如果Firefox明确表示延迟是故意的,例如将按钮的值更改为“ OK in 3 ...”并显示倒数,那么至少我应该知道这显然是故意的行为。 />
是的,应该增强安全性,但是可以通过设置security.dialog_enable_delay = 0 [superuser.com/questions/1023643/…]

#1 楼

是的,这是一项安全功能,延迟的目的是防止基于欺骗用户的输入而引起的攻击,方法是当用户在输入多个按键或鼠标的过程中意外弹出该对话框,从而跳过对话框快速连续点击。此博客文章中给出的两个说明该功能的示例是:,一个CAPTCHA要求用户键入单词only。当他们按n时,会弹出一个保存对话框,然后用户将立即按l然后按y(这是某些浏览器中OK的键盘快捷键),无意中确认了下载。双击屏幕上某处的位置,以便在第一次单击后打开对话框时,其鼠标指针位于“确定”按钮的正上方,这意味着他们可以立即确认它。持续几秒钟,输入无效。

有关此问题的Mozilla错误报告

评论


用户还可以使用额外的时间来实际检查文件名/类型。没有广告块,您可能会意外下载一些邪恶的.exe而不是实际内容。我自己还没有经历过输入技巧,但是有时我会从下载文件夹中删除“邪恶的工具栏[32] .exe”;)

–PTwr
16-3-21在9:21

我终于被开悟了。

–PNDA
16-3-21在11:55

这是一个很好的答案,我只想进一步补充一下,用户也可能变得麻木,无法弹出消息和确认。我想这稍微的延迟可以帮助减轻那些变得麻木的人。轶事:最近我向我的父亲展示了如何在Android手机上使用网络浏览器,并且出现了一些弹出窗口,他急忙单击“确定”。他一时没空,转身问我:“那是什么意思?”。我有95%的信心,这与过期的SSL证书有关,但我们永远无法确定。

–MonkeyZeus
16-3-21在15:52

@MonkeyZeus这是非常有趣的行为。您是否问过为什么他在看书之前先点击了一下,因为他显然想知道那是什么?

–烟斗
16年3月21日在18:00

@pipe我可能无意中激起了他的问题“那是什么意思?”因为我确定我在呼吸下喘息或喃喃地说“等待”。尽管如此,我认为它仍然显示出弹出的麻木感。

–MonkeyZeus
16-3-21在18:31

#2 楼

假设没有延迟,可执行文件的默认操作是打开它,并且在页面请求文件下载之前存在一些延迟。从理论上讲,如果您在对话框弹出的确切时间输入内容,则可能会意外地运行病毒。

从用户体验的角度来看,恶意程度较低,从用户体验的角度来看,该用户可能是在按空格或在弹出对话框时直接按Enter,因此接受默认的操作(可能是不正确的操作)。短暂的延迟可以防止用户无意中选择了错误的选项。当UI刷新我的输入并确保我实际上打算执行某些操作时,不太可能意外地对文件执行错误的操作。

评论


Firefox永远不会执行exe文件,至少不会从该对话框执行。

–大卫·巴拉西奇(DavidBalažic)
16-3-21在15:48

我只记得发生过一次,但是在键入时,我肯定有一个对话框出现,并且恰好抓住了空格键。我不知道它在说什么。

–丹·亨德森(Dan Henderson)
16-3-23在21:35

“我宁愿相信我的防病毒软件来完成这项任务”-我会尽力避免最初出现的问题,而不是事后依靠防病毒软件进行清理。 (换句话说,我宁愿选择一种UI来帮助避免过分下载,而不是让其发生并依靠防病毒软件阻止它们进行任何损害的UI。)

–米歇尔·约翰逊(Micheal Johnson)
16 Mar 27 '16 at 11:49

#3 楼

有没有其他答案提到的一件事:许多用户单击“确定”并在没有阅读弹出窗口的情况下进行下载。 ),然后直觉单击“确定”而不阅读并检查他们正在下载的文件,那么它们可能会错过重要的安全信息,例如大小,文件类型扩展名和要下载文件的位置。禁用OK几秒钟后,Firefox迫使用户三思而后行,检查他们下载的内容。

评论


您有任何证据吗?或者仅凭猜测,禁用按钮几秒钟就能使用户阅读消息吗?我之所以这么问是因为有一些对话框旨在迫使用户阅读诸如批准无效证书或同意许可协议之类的内容。他们使用延迟以外的方法。

– techraf
16-3-22在6:46



@techraf我没有任何证据(例如研究论文等),但是根据我自己的经验(我一直一直单击OK直到开始使用FF)并看着其他FF初学者(他们似乎确实阅读了第一次点击后弹出),我可以确认它确实有效。请注意,MonkeyZeus链接到的问题中的一个答案(在接受的答案之下)指出,通过引入延迟或附加步骤来中断应用程序的流程确实会使用户阅读。

– Anussidney
16 Mar 22 '16 at 7:20

@techraf,用户在延迟的那一刻将要做什么...他们将看着对话框,大脑将这些单词可视化,这些单词可能会充分发挥其意识,以至于他们发现自己正在“阅读”它。或者,他们可以闭上眼睛以故意使自己变钝;-)只要延迟足以使用户“叹气”,然后以深思熟虑的方式单击,就可以改善(在我的风险/回报折衷观点中) 。

–菲利普·奥克利(Philip Oakley)
16-3-25在12:45



@PhilipOakley您对研究结果有参考吗?

– techraf
16 Mar 25 '16 at 12:49

@techraf,很遗憾,我没有任何具体的参考文献。尽管有很多有关“幸运的”人研究的评论,这些研究表明那些“睁大眼睛”(即更宽广的视野)和更幸运的人。与大多数这些研究一样,它们是“技巧”。当他们学习另一件事时,您会被问到一件事,例如阅读论文,看看有多少人被提及,但实际上看看他们是否注意到“如果您告诉研究人员广告,就会得到免费的钱”!另外,相反的假设(睁大眼睛)显然是错误的,尽管他们可能只是专心地盯着“确定”按钮,直到不再变灰为止。倒霉

–菲利普·奥克利(Philip Oakley)
16 Mar 25 '15:12



#4 楼

某些程序可以在您的Web浏览器中调用按键。看一下VBScript的SendKeys()方法。

此方法将键发送到当前聚焦的窗口,并且可以发送诸如ALT,TAB和/或ENTER之类的按钮。在Windows窗体应用程序中,恶意开发人员可以实施SendKeys.Send()方法并做一些不好的事情,例如Alt-tab转到Firefox,然后在恶意下载链接上单击“确定”。

评论


如果他们处于您正在运行其VBScript或Windows Form Application的阶段,那么他们已经可以控制您的计算机,并且不需要Firefox或任何其他浏览器就可以在那里进行更多操作

–马修·斯蒂夫斯(Matthew Steeples)
16 Mar 24 '16 at 9:37

同样,他们可以通过启用代码中的按钮来避免这种情况

– beppe9000
16-3-25在11:59

页面不能像页面可以运行JavaScript那样嵌入VBScript吗?或者,甚至JavaScript无法访问相同的方法?

– DDPWNAGE
16-3-29在23:06

@DDPWNAGE否。VBScript只能在IE中在浏览器中工作,甚至不能在IE11的Edge渲染模式下工作。即使那样,据我所知,像SendKeys()之类的功能也从未在浏览器中起作用,仅在Windows Script Host中才起作用。就像您在浏览器中从Node.js脚本获得的访问权限比从JS获得更多的访问权限一样。这些库和功能除核心语言外还可用,并且仅在特定环境中可用。

–鲍勃
16年4月1日在1:08

#5 楼

我相信这是为了确保用户可以看到对话框。这只是针对已知和未知攻击媒介的某种措施。不仅仅是修补特定的已知威胁集。