【问题标题】:Are HTTPS URLs secure?HTTPS URL 安全吗?
【发布时间】:2013-06-12 02:09:05
【问题描述】:

如果一个网站发出 GET 请求,从一个 HTTPS 页面到另一个 HTTPS 页面,那是否安全?具体来说,URL / 查询参数中的数据是否安全?

我之所以这样问,是因为当我调用 Stripe.createToken 时,会连接到一个包含信用卡号的 URL。即使查询参数显示 _method=POST,它也是通过 GET 查询参数传输的:

Request URL: https://api.stripe.com/v1/tokens?card[number]=4242424242424242&card[cvc]=123&card[exp_month]=4&card[exp_year]=2016&key=pk_test_1236&callback=sjsonp11234&_method=POST
Request Method: GET
Status Code: 200 OK

现在,我知道这完全是 HTTPS,但 URL 部分不是不安全的吗?我认为 URL 会在到达目的地的途中被记录在不同的地方。

【问题讨论】:

  • 这可能更适合:security.stackexchange.com,因为没有特定的编程问题(无论如何我都能看到)。
  • @Jeff,你知道如何从 URL 中获取这些参数吗?

标签: url https security stripe-payments


【解决方案1】:

URL 通常会记录在网络服务器日志中。将该信息作为 GET 请求的一部分发送是一个非常糟糕的主意。但是,请求在客户端和目的地之间的跃点是加密的。因此,假设没有网络代理或任何东西,它可能被记录的唯一位置是https://api.stripe.com/ 的网络服务器。

更多信息请参见Are querystring parameters secure in HTTPS (HTTP + SSL)?

【讨论】:

    【解决方案2】:

    来自条纹:

    由于 HTTPS 工作方式的性质,以纯文本形式传输到 HTTPS 连接的唯一信息是您要连接的主机名(在本例中为“api.stripe.com”)。通信的所有其他部分 - 包括完整的 URL - 都经过加密,因此它们只能由我们的服务器解密。在传输级别,将持卡人详细信息包含为 URL 的 GET 参数与将它们包含在 POST 正文中没有什么不同。我们仅将 JSONP 用于 Stripe.js,而不用于任何服务器端绑定,以防您担心这些请求会出现在您的服务器日志中。

    一旦详细信息到达我们的服务器,我们就对服务器上的配置进行了更改,以确保查询字符串永远不会被记录,并且我们有例程来检查所有日志文件是否意外包含卡号。我们已与我们的 PCI 审计员(他们也审计 Google、Apple 和 AWS)合作,以确保这符合 PCI 标准,并确信我们以安全的方式处理持卡人数据。

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2017-10-17
      相关资源
      最近更新 更多