【问题标题】:Parameters can be tampered with before being encrypted and sent参数在加密发送前可被篡改
【发布时间】:2015-10-06 11:49:19
【问题描述】:

我想将一个值(比如金额)传递给支付网关。网关为我提供了使数据安全和防篡改的功能。问题是我从文本框中提取了这个数量。通过使用 fiddler 并在请求之前放置断点,甚至可以在数据到达服务器之前更改数据并由函数加密。所以现在被篡改的值被发送到支付网关。我使用 ASP.net 文本框用于获取客户想要捐赠的价值。

【问题讨论】:

  • 主要问题是您似乎将金额存储在可编辑的字段中。您最好的选择是不为此使用文本框!或许您可以澄清发送到网关的详细信息以及为什么需要将其放入文本框中?
  • 考虑使用https? ^^
  • 这就像说编辑文本框是篡改。您与网关的连接将是 HTTPS,它在传输过程中提供安全性。

标签: c# asp.net tampering


【解决方案1】:

客户端上的任何内容都可以由客户端进行修改。值来自文本框这一事实并不重要。

HTTPS 不会改变客户端可以对其想要的数据进行任何更改这一事实。

您要么需要在服务器上对值进行加密和验证, 以便客户端无法更改它,要么使用服务器到服务器的通信。

【讨论】:

    【解决方案2】:

    这取决于您构建的应用程序类型。

    如果它类似于购物车(您不希望用户在其中修改值),请将总数存储在服务器上并仅向客户端显示该值。不要使用客户价值进行付款。 HTTPS 在这里不会保护您,因为客户端仍然可以在发送之前修改值。

    如果它获取用户提供的价值并收取费用(例如发票系统),那么我假设您信任用户。在这种情况下,客户端可以修改数据并不重要(这就是您希望他们做的事情)。在这种情况下,HTTPS 将保护您在客户端和服务器之间传输的数据。任何收听“在线”的人都只会看到加密的流量。

    您应该使用 HTTPS 连接到您的服务器(以及从您的服务器到网关),请注意这些限制。

    【讨论】:

      猜你喜欢
      • 2013-01-02
      • 2014-05-29
      • 1970-01-01
      • 2018-11-27
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 2021-12-30
      相关资源
      最近更新 更多