2017-09-02 72 views
1

我想知道如何將web-api的請求限制到特定的客戶端。Web-api安全性:SSL?

的網絡API將在計算機A.

客戶託管(現在只有一個) - 將計算機託管。

不同的服務器,機器等

如何使我的網站的API只能在電腦「響應」客戶端? 使用SSL?

  1. 這是如何工作的?
  2. 我需要處理服務器端的任何事情嗎?
  3. 我們可能需要在將來使用相同的web-api的移動應用程序。在這種情況下,我如何「允許」通過web-api來回答我的應用程序的請求?
  4. 如果SSL解決了這個問題,我只能在服務器和客戶端上安裝證書嗎?

回答

0

您有多個選項,它們或多或少取決於機器的工作環境。總的來說,我會考慮三種機制:

  1. 客戶端證書身份驗證(也稱爲相互認證2路TLS)。這基本上意味着兩臺機器相互提供證書進行驗證。這種方法在服務器到服務器通信中很常見。這通常是一種非常好的和安全的方法,但是權衡是添加新的可信客戶端會帶來一些額外的麻煩,因爲您需要爲其頒發證書。
  2. 白名單的IP或主機名(或整個子網等)。換句話說,在您的服務器上配置一個配置,以便根據其來源限制允許的客戶端池。這種方法不包括任何加密技術,客戶端可以輕易地欺騙其來源,但有時您可以將其看作是其他機制的附加(額外層)。
  3. API密鑰。整合或實施基於密鑰的授權以使用API​​。這通常用於授權移動應用程序使用Web API。 API密鑰最常見的問題之一是它們的保護。您需要找到一種方法來讓任何人竊取這些密鑰變得相當困難。最終,移動應用程序通常不可能實現這一目標,但您始終需要進行風險評估,並瞭解您發現的風險有何合理的緩解措施。

您可以將這些機制組合在一起以添加其他圖層。您還可以爲更多層設置防火牆和網絡限制。但總是要花點時間來評估你試圖保護的任何風險和價值。然後你會知道什麼是合理的成本和努力來使用保護。

這不是所有可能性的完整列表,但我希望您能找到一組有用的指針來開始。

+0

我明白,結合這些機制是一個好主意。至於白名單,我認爲我們可以通過修改客戶的身份來製造「假」請求,對嗎?那SSL呢?我對此毫無頭緒......也許我在混淆 –

+0

是欺騙IP不是火箭科學,所以IP或主機白名單隻能與其他機制一起使用。 SSL或TLS是網絡通信的加密層。第1點基本上描述瞭如何使用它來授權雙方。請注意,兩端之間的證書頒發者可能不同,但頒發者必須受到接收者的信任。 – quinz