澄清通过HTTPS发送凭据

时间:2016-06-30 19:53:56

标签: javascript node.js rest ssl https

我有一个在与JIRA REST API集成的服务器上运行的网站。为了验证请求,该站点要求提供用户凭据并将其发送给JIRA以返回会话(请参阅this)。

显然,我不希望这些凭据以明文形式出现。虽然这将在不面向外部的内部网络上运行,但它仍然很重要。

我的问题是(借口说明不好):即使JIRA使用HTTPS,我是否需要为MY服务器获取SSL证书。在这种情况下,JIRA具有有效的SSL证书,并通过HTTPS保护。

概述'流程':

User enters user/pass and submits HTML form (index.html on nodejs) -> 
    -> Request (HTTP POST) is sent to my server w/ creds (nodejs)
        -> My server sends a request to JIRA (HTTPS)
        <- JIRA responds with JSON
    <- Response is received by my server
<- My server sends data back to index.html

我的想法是,在这种情况下我需要HTTPS,因为:

XX.XX.XX.XX <-/-> YY.YY.YY.YY <---> ZZ.ZZ.ZZ.ZZ

[XX] = client (index.html)
[YY] = server (nodejs)
[ZZ] = JIRA

在该&#39;图表中,客户端通过HTTP将凭据发送到我的服务器,这是不安全的。然后,服务器会将凭据发送给启用了HTTPS的JIRA。

在这种情况下,我假设凭证可以在X和Y之间嗅探,但不能在Y和Z之间嗅探(我开始迷惑自己......)

(P.S。由于CORS限制,我需要将服务器放在中间位置。除了HTTPS问题之外,一切正常。)

3 个答案:

答案 0 :(得分:1)

假设可以在任何地方嗅探凭据,加密所有内容。

答案 1 :(得分:1)

Request (HTTP POST) is sent to my server w/ creds (nodejs)是HTTP,而不是HTTPS,这是一个安全问题。获取证书并使用TLS 1.2设置HTTPS。

请记住,如果安全性差,用户会受到影响,请将您自己放在原位,您是否希望您在Internet上使用的服务具有最佳的实践安全性?

答案 2 :(得分:1)

您说得对:如果服务器Y上没有配置SSL,则客户端X和服务器Y之间的HTTP通信是明文。凭证可以在那里嗅探,但不能在Y和Z之间。

如果你在X或Y上运行它(或者可能看到数据包之间的任何东西),你可以使用wireshark这样的工具轻松检查:https://www.wireshark.org/。或者你的tcpdump命令行没有GUI(在Unix / Linux上)。

为了确保这一点,您确实需要在服务器Y上切换到HTTPS,这意味着要在其上放置SSL证书。您可以使用自签名证书进行测试(但浏览器会对其进行投诉),然后提供有效的证书:因为您似乎在公司环境中,您可能拥有内部浏览器信任的公司证书颁发机构。 / p>