api - SSL:我需要保护每个端点吗

标签 api security ssl oauth-2.0

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

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

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

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

据我所知,它仍然是安全的,因为客户端需要使用它的密码与服务器握手。但我想确定是这样,非常欢迎解释。

最佳答案

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

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

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

关于api - SSL:我需要保护每个端点吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40119298/

相关文章:

performance - 作为您自己的 API 的客户端是否存在性能问题?

jquery - 如果只有一张幻灯片使用 jQuery Cycle2 插件,则隐藏 "Next/Previous"导航

SecurityComponent 黑洞我的 Controller 测试用例

php - 防止浏览器控制台修改类(安全问题)

security - 保护 Kubernetes secret 文件以进行源代码控制?

apache - 未加载 SSL 证书

api - Laravel5 和 Codeception 中的 ExternalUrlException

ruby-on-rails - Rails 2.3.9 缺少 POST 负载

ssl - Nginx 重写 http 为 https 并代理到另一个端口,ERR_TOO_MANY_REDIRECTS 错误

java - 如何在没有 CSR 的情况下在 Tomcat 中安装 GoDaddy SSL 证书?