此問題與原生移動應用程序中基於OAuth的登錄有關。根據授權授予類型流程,用戶在登錄頁面輸入用戶名和密碼,作爲響應,在URL中獲得授權碼(因爲其URL,基於https的加密也不會起作用)。與OAuth流相關的安全問題
這意味着授權代碼在代理中可用,並且任何人都可以使用它,前提是他們也有客戶端密碼。由於移動應用程序不被認爲是安全的,所以客戶端祕密不能被存儲在移動應用程序中。我想到的用於規避客戶端祕密安全的方法是提供服務器端點,移動客戶端可以在其中調用客戶端ID,授權碼和重定向網址。端點將豐富客戶端祕密,然後調用實際的令牌端點來獲取訪問權限。由於整個通信都是通過HTTPS進行的,因此accesstoken受到保護。
現在的問題是 - URL參數中的授權代碼不安全且易受攻擊。或者我是否過度瞭解安全。這是主要問題,如果這確實是一個安全問題,那麼採取的緩解措施是什麼?
我可以想到的一個選擇,從一個較舊的stackoverflow線程是安全的令牌端點,將從服務器端提供訪問令牌。任何有關如何做到這一點的建議? - 如果它的證書,然後證書將打包在移動應用程序,使其不安全再次)
d。從[規範](https://tools.ietf.org/html/rfc6749#section-3.1.2.1):當請求的響應類型是「code」時,重定向端點應該按照第1.6節中的描述使用TLS。或「令牌」,或者重定向請求會導致通過開放網絡傳輸敏感憑據。 –
@Kris - 同意重定向端點正在使用TLS,但授權碼是HTTP查詢參數的一部分,該參數不能由TLS保護。 – Vaya
這取決於你的意思是「受保護」。當然,它可能會被您的Web服務器記錄下來,如果終止TLS,可能還會通過代理進行記錄。但是網絡上的竊聽者看不到它。 –