E commerce 电子商务:可以通过查询字符串传递订单Id吗?
我们正在开发一个专门处理在线支付的网站。我们想知道,在付款过程中通过querystring传递订单/交易Id可以吗?由于服务器开销,我们不希望将此Id存储在会话变量中,因此我们认为将其存储在querystring中是合适的 有什么想法吗?特别是从安全的角度来看E commerce 电子商务:可以通过查询字符串传递订单Id吗?,e-commerce,E Commerce,我们正在开发一个专门处理在线支付的网站。我们想知道,在付款过程中通过querystring传递订单/交易Id可以吗?由于服务器开销,我们不希望将此Id存储在会话变量中,因此我们认为将其存储在querystring中是合适的 有什么想法吗?特别是从安全的角度来看 非常感谢。您应该在数据库中捕获订单。不建议在查询字符串中传递它。在查询字符串中传递敏感信息(例如订单号)通常是个坏主意,原因有很多: 1) GET url以明文形式传递,这意味着客户端和服务器之间的任何内容都可以从请求中读取和捕获订单号。
非常感谢。您应该在数据库中捕获订单。不建议在查询字符串中传递它。在查询字符串中传递敏感信息(例如订单号)通常是个坏主意,原因有很多: 1) GET url以明文形式传递,这意味着客户端和服务器之间的任何内容都可以从请求中读取和捕获订单号。如果你的服务器依赖订单号来做任何重要的事情,那么它就很容易被滥用 2) 大多数代理和访问日志将记录包括GET查询在内的web地址,这意味着客户的订单号将存储在任意数量机器(包括您的服务器)的访问日志中。你很可能无法控制这种行为,这是非常糟糕的(TM)
为了确保应用程序的安全,您应该将实际订单号存储在服务器上的会话中,并将其以cookie形式传递给用户(最好是加密的)。以明文形式传递任何重要的内容都容易被滥用,不应该试图传递任何重要的内容。尝试使您的服务无状态是一个值得追求的目标。不过,在查询字符串中使用订单ID是否“安全”取决于很多因素。您可能需要担心的主要事情是:
- 更改订单ID的用户
- 订单ID“泄漏”给第三方
- 第三方预测的订单ID
这些只是一些想法。其中哪些应用于您的系统取决于我前面提到的因素。< /P> < P>加密订单ID将是好的-您也可以考虑散列原始订单ID,并将其和散列令牌传递到QueIrrices字符串中。我不认为这是一个安全风险,因为我不认为订单ID作为敏感数据。你需要做的就是确保用户没有以任何方式操纵它
您可以将密钥称为orderid以外的其他名称,可能是sortOrder或cheeseQuality。黑客永远不知道去哪里找!:)