代码之家  ›  专栏  ›  技术社区  ›  SamwellTarly

OAuth2纯文本凭证在Post请求中?

  •  0
  • SamwellTarly  · 技术社区  · 6 年前

    所以我在SpringBoot2中使用OAuth2来尝试SpringSecurity。

    我将此网站作为我的参考:
    https://dzone.com/articles/secure-spring-rest-with-spring-security-and-oauth2

    一旦设置了授权服务器,就可以使用 http://localhost:8080/oauth/token 通过传递post请求来结束。

    使我感到恶心的是,post请求必须将我的用户名和密码以纯文本的形式显示。

    POST /oauth/token HTTP/1.1
    Host: localhost:8080
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
    
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="grant_type"
    
    password
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="username"
    
    admin
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="password"
    
    password
    ------WebKitFormBoundary7MA4YWxkTrZu0gW--
    

    这不是一个很大的安全威胁吗? 在从客户机到服务器的过程中,每一个路由器都能看到邮件正文的内容吗?

    现在,为了解决这个问题,假设我使用JavaScript中的客户端对称加密算法来加密密码。因为所有的客户机都会得到相同的加密算法,沿途的路由器可以对称地解码我的密码。这还不够好。

    如果我必须以明文形式通过信用证,那么Spring Security的用途是什么? 我在这里做错什么了吗?大公司不可能用这个。 在春季安保系统中是否有其他设施允许我们防止这种情况发生?

    1 回复  |  直到 6 年前
        1
  •  2
  •   dur    6 年前

    你必须使用https( TLS The OAuth 2.0 Authorization Framework

    令牌终结点

    […]
    因为对令牌端点的请求导致 明文凭据(在HTTP请求和响应中),以及 授权服务器必须使用TLS,如中所述。 第1.6节向令牌端点发送请求时。

    如果授权服务器实现允许不安全的通信,那么它不符合OAuth2规范。