2017-10-01 165 views
2

我製作了一個網絡應用程序,用於存儲持久性用戶數據localStorage。我在我的網站上啓用了HTTPS,我真的很想在HSTS上翻轉開關。然而,據我所知,localStorage認爲http://example.comhttps://example.com是不同的,所以如果現有的用戶被重定向到我的網站的HTTPS版本,他們不能再訪問他們的數據(雖然它仍然存在)。將localStorage數據從HTTP遷移到HTTPS

長期來看,我想構建這個應用程序的新版本,爲數據存儲提供更多選擇。但是從短期來看,我能想到的只有一個過渡期,即http版本的用戶需要通過其他版本可以訪問的其他(未知)機制遷移他們的數據。

這是對我的選擇的公平評估嗎? https://example.com有沒有方法可以訪問http://example.comlocalStorage?如果沒有,我可以在哪裏放置用戶數據,以便兩個版本都可以訪問它,但其他站點無法訪問?還是應該讓他們下載他們的數據並重新上傳?這從UX或(用戶)安全角度看並不理想。

請注意,此web應用程序根本不與服務器交互;一切都發生在localStorage和客戶端。

回答

1

不幸的是,似乎沒有任何辦法可以從https站點直接檢索localStorage內容,以獲取網站安全性較低的http副本。 reference

我看到的解決方法是使用iframe加載類似於this answer的不安全站點上的特殊頁面。一般理論是在iframe中使用postMessage將帶有localStorage數據的消息發送回安全頁面。

不幸的是,這種方法不允許您完全禁用http,否則您的iframed http副本將無法加載。

+0

嗯,是的。看起來我可以暫時關閉HSTS,隱藏HTTP用戶的常用界面,並且有一個按鈕讓他們以這種方式填充HTTPS存儲,然後再通過「更新書籤」處理。謝謝! – rensa

+0

@rensa酷,希望它適合你。 – Mobius