【问题标题】:How do i secure my html element value?如何保护我的 html 元素值?
【发布时间】:2017-08-31 08:53:42
【问题描述】:

我正在开发一个电子商务网站,用户可以在其中选择主要产品以及每个产品的一些额外配件。同时计算总价(主要产品+配件)以显示给用户。

现在我将产品价格、单个配件价格和总价格存储在隐藏的 html 输入标签中,但可以从检查窗口轻松访问。

如何让它更安全?

【问题讨论】:

  • 不,你不能从客户端保护它,而是你需要在服务器端处理你的计算
  • 别担心,没有人能以这个价格做任何事情!
  • 为什么重要?它只是用户看到的,它不应该影响您的后端。在后端,你应该计算最终价格,永远不要在前端 :)
  • 有些人弄乱了我的系统并更改了我将其传递给支付网关的产品总量
  • 在这种情况下,不要将该值从客户端直接传递到网关。在传递之前使用服务器对其进行检查。您应该能够从您的数据库中检索和/或得出正确的价格,而不是依赖于客户发送的内容。客户端上没有什么是安全的。每个人的浏览器都是一个成熟的 IDE。您甚至不一定需要浏览器才能弄得一团糟。像 Postman 这样的东西可以完成这项工作,具体取决于相关应用程序的设计糟糕程度。

标签: javascript php html


【解决方案1】:

存储在页面上或 cookie 中的值应该仅供用户查看,不应用于后端验证,因为存储在用户计算机上的任何内容都可能被用户更改。

正如其他人所说,您应该在结帐时使用后端软件验证价格。

【讨论】:

    【解决方案2】:

    您好,有一条规则在客户端没有什么是安全的。因此,一旦您向用户显示某些内容,这就是不安全的。如果您有一些必须安全的东西(一些客户端 ID 证书、令牌...),您必须在后端处理它。

    您可以隐藏此信息,但在后端您必须始终验证输入。用户可以进行虚假请求、更改值等。

    【讨论】:

      【解决方案3】:

      您应该存储产品ID,而不是存储产品价格,然后在后端获取用户选择的特定ID的价格,然后求和或任何其他需要完成并保存在数据库中的计算。

      【讨论】:

        【解决方案4】:

        对于 Securing Hidden,您还可以将 encryption and hashing 应用于隐藏的输入字段,

        • 散列原始值
        • 加密原始值
        • 将加密值与哈希摘要一起发送
        • 收到回数据后,解密加密,散列结果并将其与接收到的散列摘要进行比较以确保值 保持不变

        参考来自:Securing HTML hidden input fields

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-17
          • 1970-01-01
          • 2019-06-28
          相关资源
          最近更新 更多