SSL:我是否需要保护每个端点

时间:2016-10-18 22:44:32

标签: api security ssl oauth-2.0

我目前正在构建连接到API的多个Web应用程序(使用Angular构建为SPA)。这些应用和API都使用SSL。

最近,我们的一些客户需要连接到我们的API进行身份验证(使用来自OAuth2的资源所有者密码凭据授权),但他的网站不是使用SSL。

所以我的问题与安全性有关。如果API使用SSL但请求来源(我的客户网站)不是,那么发送到API的数据是否安全?

使用来自OAuth2的资源所有者密码凭据授予,用户凭据实际上作为POST发送给API。那些必须被加密(中间人攻击)。

根据我的理解,它仍然是安全的,因为客户端需要使用它的密码来握手服务器。但我想确定如此,解释非常受欢迎。

2 个答案:

答案 0 :(得分:1)

如果您的API只能通过SSL访问,并且客户端正确(!!)检查您的证书以防止中间人攻击,那么客户端(即您的客户端服务器)和您的API之间发送的数据是安全的,但仅用于此连接。此保护不会扩展到以纯文本形式发送到网站本身的数据,即用户登录:

 user(browser)  <-- http --> website of client <-- https --> API
                   ^^^^^^                         ^^^^^^^
                  INSECURE                         SECURE

这意味着用户发送到客户网站然后转发到您的API的密码仅在第二步中受到保护,但不在第一步中受到保护。

答案 1 :(得分:1)

这里涉及两种不同的情况如下。

1)用户与您的客户网站交换信息。 (非安全渠道)

正如您所说客户网站没有使用SSL,这意味着最终用户的所有个人信息都将被传输到纯文本中,网络犯罪分子可以通过行动中的人员轻松获取数据。中间,窃听和其他网络攻击。

2)客户网站数据与API通信。 (安全通道)

在这种情况下,您的客户网站是不安全的,但您的API使用HTTPS协议是安全的,因此客户网站和API之间的所有通信都将转换为加密方式,因此没有人可以在传输过程中中断数据。 / p>