簡體   English   中英

利用本地存儲來存儲購物車詳細信息的更好方法

[英]A better way to utilise local storage to store shopping cart details

我目前正在開發一個電子商務網站。 該網站將沒有登錄頁面,因為我們沒有將用戶詳細信息保留在數據庫中。 相反,我們將保留用戶的電子郵件與他們聯系。 因此,數據庫中將不會有用戶表。 為了將數據保留在用戶的購物車中,我們將使用本地存儲來存儲數據。 但是,我擔心某些惡意用戶會篡改購物車中的內容,例如產品價格。 因此,我可能會考慮將productIDs存儲在本地存儲中,然后在用戶重新加載頁面時從數據庫中檢索特定產品。

該解決方案是否健壯? 有沒有更好的方法來利用本地存儲來存儲用戶的購物車,或者有替代本地存儲的方法?

沒錯,您應該只使用ID和其他數據屬性。 所有重要的事情,例如價格數量...都應保存在服務器端,並且您必須通過ID查詢它們。 本地存儲是不錯的選擇,但它的限制大約為5mb,如果您存儲大量數據,它將過載並無法保存。 如果您只需要保存id,那很好,否則我建議為此使用indexDB,如果您希望使用indexDB,建議您檢查https://dexie.org/此庫。

快速簡單的答案:

“消毒用戶的購物車數據之前將它發送到后端,並檢查它針對預先定義的產品數據庫,以確保產品的存在,他們實際花費什么由車數據指定。”

詳細而詳盡的答案:

您應該實施一個三階段系統來驗證用戶的購物車數據:

  1. 根據您的電子郵件列表/數據庫檢查用戶的電子郵件
  2. 在將用戶購物車數據發送到后端之前對其進行消毒
  3. 根據預定義的產品數據庫驗證購物車的產品

這樣可以防止黑客:

  1. 使用偽造的用戶數據購買產品
  2. 修改產品數據
  3. 使產品價格更高/更低
  4. 使用用戶的購物車數據將惡意代碼注入您的后端
  5. 創建/購買假冒/不存在的產品

您還應該使用瀏覽器的內置功能來轉義用戶輸入

function escape_input(data) {
  var div = document.createElement("div");
  div.appendChild(document.createTextNode(data));
  return div.innerHTML;
}

因為(根據鏈接的網站):

“保持警惕對用戶數據進行處理非常重要。為避免SQL注入,切勿通過連接用戶提供的數據來構建數據庫查詢。這些措施可保護我們服務器上數據的完整性。”

我還建議您使用某種身份驗證系統, 然后用戶才能進行購買。

Google的兩步驗證系統就是一個很好的例子,該系統要求您將通過短信/電話發送給您的驗證碼輸入到輸入表單中。

這樣做是為了驗證用戶的身份並防止人們訪問/使用其他人的帳戶,該系統幾乎不可能被欺詐,但也很容易錯誤地實施,因此,我會一丁點建議。

不幸的是,由於您尚未指定任何代碼,因此我無法確定您的網站的安全性。

如果您使用該代碼創建一個新問題並將其鏈接到此處,我將非常樂於嘗試幫助您解決應用程序的安全漏洞(如果有)。

祝你好運,並保持安全。

暫無
暫無

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

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