2011-08-14 73 views
11

似乎目前還沒有純JavaScript方法用於使用大多數現代瀏覽器訪問系統剪貼板,Internet Explorer是一個例外。在許多其他堆棧溢出問題(例如,Clipboard access using Javascript - sans Flash?)中,解釋說這個限制是一種有意的安全措施,用於防止網站從剪貼板讀取密碼或其他敏感數據。爲什麼寫入JS中的剪貼板被認爲是安全漏洞?

雖然似乎很明顯,閱讀從剪貼板將是一個巨大的安全隱患,這是我不明白爲什麼到剪貼板會。什麼情況下,如果有的話,瀏覽器通過拒絕JS將數據複製到剪貼板的能力來防範?

回答

14

寫入剪貼板是惡意網站(或其他在網站內運行的代碼(如基於Flash的廣告))誘騙用戶傳播惡意軟件的一種方式。幾年前,這種情況發生在基於Flash的廣告上,該廣告將惡意軟件URL複製到剪貼板上,希望用戶在打算粘貼其他內容時將其粘貼,從而污染Facebook帖子,論壇和電子郵件等內容。不要鏈接到蒂莉阿姨阿姨的照片,你可以粘貼一些鏈接到惡意軟件。通常情況下,這些是「你已經感染了病毒,支付50美元的清除軟件」假的防病毒詐騙。 我做了一些研究,因爲我的很多ClipMate客戶都在問爲什麼這些討厭的URL突然出現在ClipMate中。在研究過程中,我受到MSNBC和DIGG上基於Flash的廣告的攻擊。剪貼板隨後被鎖定在Flash 10中。您可以在這裏閱讀關於我的傳奇的更多信息:http://www.clipboardextender.com/defective-apps/clipboard-virus-not-exactly-but-still-dangerous

我期望JavaScript限制是爲了防止發生類似的情況。

+2

現在*這個*是一個真正的安全問題。正是我在找的東西。謝謝。 – goodside

+0

很好的答案,謝謝你的信息。 –

+0

他們可以使用Flash,就像Github一樣。 – danuker

6

如果用戶不希望覆寫他或她的剪貼板,該怎麼辦?

+0

沒錯。例如,一個用KeePass的用戶可能在他的剪貼板中有一個他需要的密碼,並且覆蓋他想存儲的數據會是破壞性的和令人討厭的,這就是瀏覽器不希望出現這種行爲的原因。 – mopsled

+2

Flash只在點擊某物時支持它。如果以相同的方式使用JavaScript實現,我不會看到安全漏洞。這將爲這些Flash解決方案節省很多麻煩。 – pimvdb

+2

如果沒有更具說服力的話,我會接受這一點,但這似乎是一個微不足道的理由來禁用可能有用的東西。丟失剪貼板在最糟糕的情況下是一種煩惱,因爲不會期望它是重要數據的長期存儲櫃。此外,還有無數其他方式可以讓用戶受到普遍支持的JS用戶的困擾,例如創建彈出式通知。 – goodside

3

如果用戶期望他們的剪貼板包含一件東西,但隱藏它已被另一件事取代,即使這是一個潛在的安全問題,而不僅僅是一個煩惱。

儘管不太可能出現攻擊媒介,但認爲涉及社交工程的夢想可能並非不合理:說服用戶將隱蔽更改的信息粘貼到目標資源的密碼字段中。然後,該資源將通過攻擊者已知的密碼進行保護。

0

除了上述漏洞問題,至少有一種情況是javascript剪貼板API的重寫實現會引起一些安全問題。

現在我們有了新的API,用於在不調用服務器端的情況下在不同的窗口之間建立連接,如最近引入Firefox的postMessage,MessageChannelBroadcastChannel。這些API具有不同級別的瀏覽器支持,但他們都在考慮跨源問題。也就是說,除非此窗口明確允許,否則不應從不同主機上的窗口收到消息。

這不適用於剪貼板API。想象一下,頁面上的一些代碼將代碼粘貼到剪貼板,並且該剪貼板被另一個窗口掃描。 這是一些非常奇怪和高度低估的情景,取決於一些相當奇怪和奇特的假設,但值得一提的是它。

相關問題