簡體   English   中英

防止cookie被發送到服務器

[英]Prevent cookie from being sent to server

我正在編寫一個應用程序,其中大部分狀態存儲在客戶端。 國家有點私人信息 ,所以我想把它留在客戶端 有一些嚴格的政策禁止這些信息到達我的服務器。 到目前為止,我使用localStorage ,這是一個完美的解決方案。

不幸的是,原來的Safari有localStorages和iframe中的一些問題( 123 )。 如果我使用cookie,瀏覽器會將它們發送到服務器,這是不可接受的。 使用javascript管理所有存儲的數據,不使用http Set-Cookie標頭。

基本用例如下:應用程序在域A中有一個“主”頁面,用戶可以在其上更改其設置,並且在另一個域(B)中有一個頁面,其中有一個指向某個特殊頁面的iframe在域A中,使用postMessage和onmessage交換一些信息。 域A的主頁面和域B中嵌入的iframe必須共享一些存儲才能運行。

對此有何看法?

編輯1

一個想法如下:在iframe和“主”頁面上詢問用戶密碼,並使用該密碼加密私人信息。 加密的私人信息可以存儲在cookie中,因為我的服務器沒有用戶密碼。 到目前為止,這是最好的解決方案,但對用戶來說是不舒服的。

根據這篇文章你可以使用

window.parent.postMessage("Hello From IFrame", "*");

與父框架中的事件偵聽器結合使用

window.addEventListener ("message", OnMessage, false);

從子框架到父框架的跨域通信。

然后,您可以使用父框架中的本地存儲來保存您之前的共享信息。

如果本地存儲不能正常工作,則可以使用會話存儲,因為會話存儲未發送到服務器。

但是使用會話存儲的限制是你將無法在同一個域的選項卡之間共享數據,在單個選項卡中它將正常工作。

不太確定,但也許你正在尋找一個解決方案:

  1. 不要求密碼加密私人數據
  2. 每個用戶加密私有數據的永久密碼(下次用戶回來時,仍然使用相同的密碼)

如何使用用戶的登錄密碼加密數據?

或者從服務器生成令牌並在客戶端存儲。 從服務器發送回數據到客戶端時,檢查令牌並根據令牌加密數據。 嘗試構建多種類型的令牌,每種類型都有不同類型的加密。

其他方案

使用安全cookie + http嚴格運輸。 您無需更改任何內容,只需根據后端實現它們即可。 您可以從這里閱讀更多內容: https//www.owasp.org/index.php/SecureFlag https://www.owasp.org/index.php/HTTP_Strict_Transport_Security

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM