2016-10-18 46 views
0

我目前正在建立幾個連接到API的web應用程序(使用Angular構建爲SPA)。這些應用程序和API都使用SSL。SSL:我需要保護每個端點嗎

最近,我們的一些客戶端需要連接到我們的API進行身份驗證(使用OAuth2的資源所有者密碼憑據授權),但他的網站不是使用SSL。

所以我的問題是有關的安全性。如果API使用SSL但請求來源(我的客戶的網站)不是,那麼數據是否發送到API安全?

使用資源所有者密碼憑據從OAuth2用戶授予,用戶憑據實際發送POST作爲向API。那些必須被加密(中間人攻擊)。

從我的理解,它仍然是安全的,因爲客戶端需要使用它的密碼握手服務器。但我想確定如此,解釋是非常值得歡迎的。

回答

1

如果你的API時,才能訪問通過SSL和客戶端是否正確(!!)檢查您的證書,以防止中間人攻擊,然後在客戶端之間發送的數據(即客戶端的服務器)和你的API固定但僅限於此連接。

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

這意味着用戶發送到客戶的網站,然後轉發給您的API的密碼保護:這種保護不被用戶擴展到以純文本形式發送到網站本身的數據,即登錄只在第二步,但不在第一步。

+0

感謝您的回答。所以實際的行爲是在客戶的網站上會有一個登錄表單。提交時,數據將異步發送(Ajax)到API。在這種情況下數據是否安全? – lkartono

+0

@lkartono:同樣,數據傳輸僅從網站保護到您的API,而不是在瀏覽器和網站之間。這意味着它們顯然不安全,因爲它們可以被攻擊者在瀏覽器和網站之間攔截。 –

+0

具有很大的意義。謝謝 :) – lkartono

1

這裏涉及兩種不同的情況,如下所示。

1)用戶交流,您的客戶網站的信息。 (非安全通道)

至於你說客戶網站沒有使用SSL,就意味着將在以純文本和網絡犯罪分子傳輸可以很容易獲得的訪問最終用戶的所有個人信息通過扮演中間人,竊聽和其他網絡攻擊的數據。與API

2)客戶網站的數據通信。 (安全信道)

在這種情況下,客戶端的網站是不安全的,但你的API是安全使用HTTPS協議,結果客戶網站和API將中轉變成加密方式,所以沒有人能之間的所有通信在傳輸過程中中斷數據。

相關問題