利用本地存储来存储购物车详细信息的更好方法

时间:2019-04-25 14:04:12

标签: javascript local-storage shopping-cart

我目前正在开发一个电子商务网站。该网站将没有登录页面,因为我们没有将用户详细信息保留在数据库中。相反,我们将保留用户的电子邮件与他们联系。因此,数据库中将不会有用户表。为了将数据保留在用户的购物车中,我们将使用本地存储来存储数据。但是,我担心某些恶意用户会篡改购物车中的内容,例如产品价格。因此,我可能考虑将productID存储在本地存储中,然后在用户重新加载页面时从数据库中检索特定产品。

此解决方案是否可靠?是否有更好的方法来利用本地存储来存储用户的购物车,或者有替代本地存储的方法?

2 个答案:

答案 0 :(得分:1)

您是正确的,应该仅使用ID和数据的其他属性。所有重要的事情,例如价格数量...都应保存在服务器端,并且您必须通过ID查询它们。本地存储是不错的选择,但它的限制大约为5mb,如果您存储大量数据,它将过载并无法保存。如果您只需要保存id,那很好,否则,我建议为此使用indexDB,如果您希望使用indexDB,建议您检查https://dexie.org/这个库

答案 1 :(得分:1)

快速简单的答案:

  

”对用户的购物车数据进行消毒之前,然后将其发送到后端,并根据预定义的产品数据库进行检查,以确保产品存在并且实际花费指定的价格根据购物车数据。”

冗长而详尽的答案:

您应该实施一个三阶段系统来验证用户的购物车数据:

  1. 对照您的电子邮件列表/数据库检查用户的电子邮件
  2. 清理用户的购物车数据之前,将其发送到后端
  3. 根据预定义的产品数据库验证购物车的产品

这样做可以防止黑客:

  1. 使用伪造的用户数据购买产品
  2. 修改产品数据
  3. 使产品价格更高/更低廉
  4. 使用用户的购物车数据将恶意代码注入您的后端
  5. 创建/购买假冒/不存在的产品

您还应该使用浏览器的内置功能来escape user input

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

因为(根据链接的网站):

  

“保持警惕对用户数据进行处理非常重要。为避免进行 SQL 注入,切勿通过连接用户提供的数据来构建数据库查询。这些措施可保护用户数据的完整性。我们服务器上的数据。”

我还建议您使用某种类型的身份验证系统,该系统需要之前用户可以购买。

一个很好的例子是Google的两步验证系统,该系统要求您将通过短信/电话发送给您的代码输入到输入表单中。

这样做是为了验证用户的身份并防止人们访问/使用其他人的帐户,该系统几乎不可能被欺诈,但也很容易错误地实施,因此我建议使用一粒盐。

很遗憾,由于您尚未指定任何代码,因此我无法确定您的网站的安全性。

如果您使用该代码创建一个新问题并将其链接到此处,我非常乐于尝试帮助您解决应用程序的安全漏洞(如果有)。

祝你好运并保持安全。