2013-08-20 37 views
0

我的印象是,訪問某個網站的元素是跨域訪問,除非允許來源,否則您無法從「目標」訪問這些元素。像Chrome或LastPass這樣的自動填充填充程序如何訪問網站上的表單元素?

這是怎麼回事,例如加載SalesForce.com在iframe中,並嘗試訪問登錄頁面(你不能由於顯而易見的原因)與LastPass如何訪問這些元素來填寫我的密碼和用戶名?甚至Chrome表格填充?

瀏覽器擴展是否實際上擁有更多的控制權或權力來執行此操作?如果是這樣,底層的怪異細節是什麼?

謝謝!

回答

1

是的,當有人寫一個擴展名他們create a manifest defining the required permissions。因此,安裝擴展程序時,您必須明確同意這些權限,特別是像'訪問所有網站上的數據'。

擴展默認綁定到網站的常規沙盒規則,除非他們通過清單請求更多內容,就像LastPass那樣,Chrome本身也會隱式地執行。

+0

有趣。但是,「批准」是否必須來自請求的服務器?這是不是說任何擴展程序都可以將數據從我的網站上取走?或者這是清單的要點? – EKet

+0

我沒有看到你的觀點。默認情況下,擴展名僅限於瀏覽器中的一個非常小的沙箱。通過清單請求權限,它可以獲得更多權限來訪問已由瀏覽器加載的數據*。從不涉及任何服務器,擴展本身只能訪問已經傳輸的客戶端數據。 –

+0

現在看來很明顯,謝謝。由於我已經下載了內容,所以我正在操縱我已經訪問的內容,與服務器與服務器的通信相比,它只是我的客戶端訪問我已下載的頁面,並且正在對「視圖」進行更改。說得通! – EKet