題:
Firefox下載對話框中的保存按鈕延遲是否是一項安全功能?它保護什麼?
Numeron
2016-03-21 11:32:06 UTC
view on stackexchange narkive permalink

當我單擊以通過Firefox下載文件時,會出現一個對話框,詢問我是將文件保存在某個地方還是下載後立即將其打開。

Screenshot of a Firefox download dialog

對話框窗口中的“確定”按鈕開始被禁用,並且直到對話框獲得焦點大約一秒鐘後才啟用。該對話框不是模態對話框,如果我將焦點放在另一個窗口上,則“確定”按鈕將被禁用,直到該窗口保持焦點一秒鐘後,該按鈕才會再次啟用。

我的伴侶對這種設計感到遺憾,並問我為什麼她不能僅單擊“確定”立即下載-我回答我一直認為這是一項安全功能。現在,我考慮了一下,現在還不確定它可以防止什麼行為。我本以為可以通過強迫下載窗口至少保持打開狀態足夠長的時間來查看發生了什麼事情,從而防止某些惡意網站秘密下載文件-但是網站應該可以在後台秘密下載內容無論如何。無論我認為大多數用戶都會在某個時候單擊“從現在開始自動執行此操作”框,因此無論如何都不受保護...

那麼,這是否是一項安全功能?如果是這樣,它可以防止什麼?

我有點以為這是由Firefox開發特定代碼的人效率低下引起的一些奇怪的緩慢現象。如果Firefox明確表示延遲是故意的,例如將按鈕的值更改為“ OK in 3 ...”並顯示倒數,那麼至少我應該知道這顯然是故意的。
是的,應該增強安全性,但是可以通過設置security.dialog_enable_delay = 0 [https://superuser.com/questions/1023643/firefox-disable-delay-on-download-dialog-buttons]關閉
五 答案:
samgak
2016-03-21 12:24:35 UTC
view on stackexchange narkive permalink

是的,這是一項安全功能,延遲的目的是基於用戶在輸入多個鍵的過程中意外彈出來欺騙用戶誘使用戶輸入輸入以跳過對話框,從而防止攻擊快速連續按下或單擊鼠標。 此博客文章中給出的兩個解釋該功能的示​​例是:

  • 一個驗證碼,要求用戶鍵入單詞 only 。當他們按 n 時,會彈出一個保存對話框,然後用戶將立即按 l 然後是 y ,這是鍵盤快捷鍵在某些瀏覽器上顯示為OK,則無意間確認了下載
  • 一個說服用戶在屏幕上雙擊的網頁,其位置應確保在第一次單擊後打開對話框時,其鼠標指針位於“確定”按鈕,表示他們立即確認。

通過禁用按鈕幾秒鐘,輸入無效。

Mozilla錯誤報告關於這個問題

用戶還可以使用額外的時間來實際檢查文件名/類型。沒有廣告塊,您可能會意外下載一些邪惡的.exe而不是實際內容。我自己還沒有經歷過輸入技巧,但是有時我會從下載文件夾中刪除“邪惡的工具欄[32] .exe”;)
我終於被開悟了。
這是一個很好的答案,我只想進一步補充一下,[**用戶也可以變得麻木,無法彈出消息和進行確認**](http://ux.stackexchange.com/q/44609/45170)。我想這稍微的延遲可以幫助緩解那些變得麻木的人。軼事:我最近向我的父親展示瞭如何在Android手機上使用網絡瀏覽器,並且出現了一些彈出窗口,他急忙單擊“確定”。他一時沒空,轉身問我:“那是什麼意思?”。我有95%的信心,這與過期的SSL證書有關,但我們永遠無法確定。
@MonkeyZeus這是非常有趣的行為。您是否問過為什麼他在看書之前先點擊了一下,因為他顯然想知道那是什麼?
我還要提及Windows中的一項功能,該功能可使您的鼠標自動彈出到窗口的默認按鈕上,就像它彈出時一樣。在這種情況下,如果您要在彈出的屏幕上單擊任何位置,則延遲可以防止您意外單擊“確定”。
-1
嗯,難道操作系統不應該防止意外的焦點損失嗎? Windows的焦點丟失預防似乎效果很好。 Linux的性能中等,對Mac不確定。這至少不會在Windows上引起爭議嗎?
@Mehrdad Err ...我不知道您從哪裡得到的,但是Windows的焦點丟失預防功能還遠遠不夠完善。我經常被盜。也許在Windows 10中有所不同,但是我不使用它。
由於這兩個問題都有簡單的解決方案,因此這個原因似乎很容易破解。雙擊:防止窗口將“是”按鈕與鼠標對齊。驗證碼:永遠不要專注於下載窗口,以便您始終在頁面上鍵入
@MikeKellogg:很奇怪,我發現它基本上是完美的,而且只要我記得就一直如此。我不使用Windows10。不過,我認為它僅在不同的應用程序之間使用,因此,如果您期望它在單個應用程序中運行,那可能就是為什麼嗎?或者,您鍵入速度有多快?內置延遲可能不適合您的打字速度嗎?除非另一個應用程序允許您(實際上具有當前焦點的應用程序必須先調用“ AllowSetForegroundWindow”),否則實際上從另一個應用程序中竊取Windows中的焦點幾乎是不可能的...在哪種情況下您遇到了麻煩?
-1
@MikeKellogg:有趣的是...在按下Enter鍵之前是否有一個暫停(例如1秒或更長時間),還是在鍵入時停頓了?
@Mehrdad我相信我已經停下來了,但是我也曾在打字過程中發生此事,而之前沒有暫停過,更常見的是空格鍵。
@MikeKellogg:不知道坦白說什麼,對不起。我已經清楚地註意到它可以防止焦點丟失很多次,然後我驚訝於它的工作原理...
如果我說不僅有延遲,而且所有鍵盤和鼠標事件都被吞沒了,那我對嗎?否則,延遲幾乎是沒有意義的。
On the flip-side, it trains users to mindlessly click "OK" whenever a popup prompt shows up.
FWIW, I often have my active window's focus stolen by "nothing" (at least, nothing I can determine). I suspect it's some program or other that's minimized to my notification tray, reestablishing a network connection or something. It seems to happen most often if I have a lot of programs and/or browser tabs open, so it might be some kind of DWM glitch, too.
@Mehrdad即使操作系統確實阻止了這種情況,這也是從頁面到頁面觸發的元素的故意轉移。我無法想像任何操作系統都能防止這種情況。(與Mike一樣,我發現Windows根本沒有太多預防焦點丟失的功能。)
很高興看到有關盜竊罪的評論-我多麼討厭它,而且很囂張。
令人驚訝的是,還沒有人提到它,但是它的名字是:“ clickjacking”(“ click”和“ hijacking”的portmanteau)也可以用於按鍵劫持,也可以在彈出式網頁中發生,而不僅僅是瀏覽器本身顯示的對話框)。
@pipe一種可能性:他習慣於單擊“確定”,但是由於附近的某人可能對消息的含義有所了解,因此他意識到自己也可能會問。或者,他*單擊*後意識到這可能很重要。
adblock無法保護您免受惡意軟件的侵害。甚至惡意軟件掃描程序都無法做到這一點。只有敏銳的思維(brain.exe)才能確保您的安全
phyrfox
2016-03-21 12:23:45 UTC
view on stackexchange narkive permalink

讓我們想像一下,沒有延遲,可執行文件的默認操作是打開它,並且在頁面請求文件下載之前存在一些延遲。從理論上講,如果您在對話框彈出的確切時間輸入內容,可能會意外地運行病毒。

從用戶體驗的角度來看,這種惡意很少,

惡意程度較低,當對話框彈出時,用戶可能處於按下空格或Enter的中間,因此接受默認(可能不正確)的操作。短暫的延遲可以防止用戶意外選擇錯誤的選項。

雖然我懷疑此功能實際上是為了保護任何東西(我希望我的防病毒軟件能夠執行此任務),但我發現UI刷新我的輸入並確保我確實打算執行某些操作時,不太可能對文件執行錯誤的操作。

Firefox永遠不會執行exe文件,至少不會從該對話框執行。
It's only happened to me once that I can recall, but I definitely had a dialog appear once as I was typing, with exactly the right timing to catch my spacebar. I have no idea what it said.
“我寧願我的防病毒軟件能夠完成該任務” –我會盡力避免最初出現的問題,而不是事後依靠防病毒軟件進行清理。(換句話說,我寧願選擇一種UI來幫助避免過分下載,而不是讓其發生並依靠防病毒軟件阻止它們造成任何損害的UI。)
angussidney
2016-03-22 11:35:45 UTC
view on stackexchange narkive permalink

有一件事,其他答案都沒有提到:許多用戶單擊“確定”,然後下載而不閱讀彈出窗口

如果用戶要下載惡意軟件意外(或被欺騙),然後本能地單擊 OK kbd>而不閱讀並檢查他們正在下載的文件,那麼他們可能會錯過重要的安全信息,例如文件大小,擴展名和位置。

通過禁用 OK kbd>幾秒鐘,Firefox迫使用戶三思而後行,然後檢查他們要下載的內容。

您有任何證據嗎?或者只是純粹的猜測,禁用按鈕幾秒鐘就能使用戶閱讀消息嗎?我之所以問是因為有一些對話框旨在迫使用戶閱讀諸如批准無效證書或同意許可協議之類的內容。他們使用延遲以外的方法。
@techraf我沒有任何證據(例如研究論文等),但是根據我自己的經驗(我一直都單擊OK直到開始使用FF)並看著其他FF初學者(他們似乎確實讀過彈出窗口)首次點擊後),我可以確認它確實有效。請注意,MonkeyZeus鏈接到的問題中的[答案之一](http://ux.stackexchange.com/a/44675/69736)(接受的答案)指出,通過引入延遲來破壞應用程序的流程或其他步驟確實會使用戶閱讀。
-1
@PhilipOakley您對研究結果有參考嗎?
-1
有趣的是,我知道至少有一家公司非常熱衷於一鍵式購買,因為它鼓勵衝動購買。相反,這阻止了衝動。我懷疑它是否會讓任何人閱讀,但它可能會使有意識的思考過程有所影響。
DDPWNAGE
2016-03-23 10:13:34 UTC
view on stackexchange narkive permalink

某些程序可以在您的Web瀏覽器中調用按鍵。看看VBScript的 SendKeys()方法。

此方法將鍵發送到當前聚焦的窗口,並可以發送諸如ALT,TAB之類的按鈕和/或ENTER。

在Windows Forms應用程序中,惡意開發人員可以實現 SendKeys.Send()方法並做一些不好的事情,例如Alt鍵切換至Firefox,然後在惡意下載鏈接上單擊“確定”。

如果他們正處在運行他們的VBScript或Windows Form Application的階段,那麼他們已經可以控制您的計算機,並且不需要Firefox或任何其他瀏覽器就可以在那裡進行更多操作
同樣,他們可以通過啟用代碼中的按鈕來避免這種情況
頁面不能像頁面可以運行JavaScript那樣嵌入VBScript嗎?或者,甚至JavaScript無法訪問相同的方法?
@DDPWNAGE號VBScript只能在IE中在瀏覽器中工作,甚至不能在IE11的Edge渲染模式下工作。即使那樣,據我所知,`SendKeys()`之類的功能也從未在瀏覽器中起作用,僅在Windows Script Host中才起作用。就像您在瀏覽器中從Node.js腳本獲得的訪問權限比從JS獲得更多的訪問權限一樣。這些庫和功能除核心語言外還可用,並且僅在特定環境中可用。
Curious Sam
2016-03-21 17:24:42 UTC
view on stackexchange narkive permalink

我相信這是為了確保用戶看到對話框。
攻擊向量比其他答案中已經描述的用戶鍵入技巧更多。
例如,基於USB HID的黑客。這只是針對已知和未知攻擊媒介的某種措施。不只是修補特定的已知威脅集。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...