2013-04-14 32 views
0

我正在使用curl post在我的三個站點之間交換數據。我需要通過確認是否從我的三個站點中的任何一個發送POST請求來確保數據交換。如何在PHP中保護髮布請求和響應

現在我已經實現了請求頭檢查,但請求頭也可以被操縱。有沒有一種傻瓜證明的方式來實現這一點?

+0

你熟悉PHP會話和cURL嗎? – 1337holiday

+0

您是否在客戶端嘗試確保您到達正確的服務器或服務器上,以確保客戶端已被授權?或者你是否試圖確保請求內的數據保密? (或者全部三個,那將是最好的情況。) – Ladadadada

+1

它以SSL開頭,SSL也支持客戶端證書。如果你正在尋找公鑰/私鑰加密。 –

回答

0

我正在開發一個RESTful服務,並且考慮如何確保服務和授權客戶之間的通信。經過漫長的研究,我決定採用以下解決方案。

每個客戶端(應用程序)都有一個公共ID和一個私鑰。公共ID可以啓動。私鑰,只有客戶和服務知道。

對於每個請求,客戶端都必須通過HTTP基本認證進行認證。用戶名是公共ID。密碼是一個SHA1令牌。令牌由公共ID,傳輸參數和私鑰的組合生成。

當服務收到請求時,他通過用戶名知道客戶端發出了這個請求。它使用相同的方法生成一個令牌並將其與密碼進行比較。 這兩個令牌是否相同,客戶有權提出請求。此外,確保參數不被操縱。

+4

服務器不應該知道私鑰。這不是私人公鑰系統的工作原理。因此,你在答案中的* only *實際上不是* only * but * too much *。你所描述的是一個所謂的共享祕密。就像密碼一樣。 –

+0

我想指出的是密碼不是用純文本。對不起,如果條款有困惑。 – PaulRoth