2017-02-09 69 views
0

當我嵌入一個託管在JS上的JS可以說,xyz.com在一個託管在abc.com上的網頁上時,似乎xyz.com/test.js可以讀取和寫入abc.com上設置的所有鍵值。這不是被認爲是巨大的安全漏洞嗎?當您計劃使用Google Analytics等第三方JS時,建議網站不要在本地存儲中存儲任何用戶敏感信息?第三方JS訪問第一方localstorage可以嗎?

下面是一個例子 - https://jsfiddle.net/kuldeepk/eqawezd6/1/

localStorage.setItem('first-party', 'first-party'); 
window.Test.setKeyValue('third-party', 'third-party') 
console.log(window.Test.getKey('first-party')) 
console.log(localStorage.getItem('third-party')); 

window.Test在第三方JS

+0

是的,任何加載在頁面上的JS都可以從頁面的域中訪問cookie和localStorage。這是您不應該在瀏覽器中存儲敏感數據的原因之一(如果您必須,請將其加密並將其解密到服務器端)。在法國,我們有法律禁止在未經用戶同意的情況下在本地存儲數據,並存儲非加密的敏感數據,如用戶電子郵件,密碼等。 – blex

+0

有趣。我很困惑爲什麼瀏覽器允許這個安全漏洞,而cookie不會遭受同樣的設計缺陷。 –

+0

_「餅乾不會遭受同樣的設計缺陷」_? https://jsfiddle.net/scwo1ba9/ – blex

回答

2

是網站建議不存儲任何用戶敏感信息申報

地獄不,使用你沒有使用任何第三方JS

無論是在本地存儲還是在前端的其他地方,js或html中的所有內容都可以被每個訪問您網站的人閱讀。

只需按F12並查看整個前端源代碼stackoverflow必須提供。

+0

是的,我理解這一部分。我並沒有提到用戶名/密碼類型的東西,但即使是一般應用程序相關的數據,似乎這些數據可能會被第三方js篡改,而第一方並不知道它。 Cookie不是這種情況。我想我只是困惑於整個循環漏洞 –

+0

也可以讀取cookie。 @KuldeepKapade。只需在您的問題下點擊blex'小提琴。 – baao

+0

在該示例中,cookie設置在相同的域中。在abc.com中設置的cookie不能被xyz.com讀取 –