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

标签 javascript local-storage shopping-cart

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

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

最佳答案

快速而简单的答案:

"Sanitize the user's cart data BEFORE sending it to the back-end and check it against a pre-defined product database to make sure the products exist and that they actually cost what's specified by the cart data."

长而详细的答案:

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

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

这样做可以防止黑客:

  1. 使用虚假用户数据购买产品
  2. 修改产品数据
  3. 提高/降低产品价格
  4. 使用用户的购物车数据将恶意代码注入(inject)您的后端
  5. 制造/购买假冒/不存在的产品

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

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

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

"It's important to be constantly vigilant with the handling of user data. To avoid SQL injection, never build database queries by concatenating user-supplied data. These measures protect the integrity of the data on our servers."

我还建议在用户进行购买之前采用某种身份验证系统。

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

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

不幸的是,由于您没有指定任何代码,我无法确定您网站的安全性。

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

祝你好运并保持安全。

关于javascript - 利用本地存储来存储购物车详细信息的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55851187/

相关文章:

javascript - Laravel - Javascript 在路径更改时找不到图像

javascript - 无论如何在本地存储中使用星号或其他方法?

javascript - 评估 SSR module/src/stores.js 时出错 : ReferenceError: localStorage is not defined

php - 自定义 Paypal 购物车(付款 ID 号)

html - 使用 Bootstrap 3.0 为多个设备创建购物车页面

javascript - 使用一个 API 调用的响应来执行另一 API 调用

javascript - 将项目插入 backbone.js 集合

javascript - 为什么此示例中 "this"的上下文会发生变化?

javascript - 为 Javascript 预加载的本地数据库后端(可能吗?)

magento - 无法结帐购物车中的大量商品(200+) - Magento 1.4.2