2012-09-26 31 views
0

可能重複:
How secure is sending sensitive data over https?
JSON data to web service- how do define expected JSON data如何進行設計PHP REST Web服務的認證?

我建立接受JSON作爲其有效載荷的REST Web服務。 現在,我的網絡服務非常簡單。它只是接受來自客戶端系統的數據並在我們的系統中創建訂單(Web服務基本上是現有功能的包裝)。

現在,我通過應用程序中的用戶名和密碼對用戶進行身份驗證。我只要求他們在他們發送的JSON數據中提供他們的用戶名/密碼?這是安全的嗎?

該服務通過HTTPS運行。

+1

好吧,看起來好像它可能不是重複的,但爲什麼你會用兩分鐘的時間創建兩個同名的問題? - 我建議你編輯問題標題。 – Leigh

+0

安全性是一個過程,所以安全性問題無法回答,因爲它太不明確。這取決於您需要的安全級別。你基本上在這裏問HTTPS是否安全。 – hakre

+0

嗨。不知道那裏發生了什麼。問了一個問題,然後問另一個,它保留了我以前的問題,所以忘了更新標題。 – Lock

回答

0

正如我在上面的評論中所寫的那樣,你不知道你想知道什麼。也許是因爲有很多「這取決於」的潛力。

讓我們看看你能做些什麼:

  1. 你可以把認證在傳輸層上,這裏HTTP。這樣可以讓您很早就進行身份驗證,例如在(網絡)服務器級別。
  2. 您可以將憑據傳遞給json有效內容,然後在應用程序中進行身份驗證。這可以與1.
  3. 您可以創建一個已驗證的會話,並傳遞一個會話密鑰。 API請求然後需要有一個會話,否則它們不被接受。這可以與2.和3.

只要傳輸層對您來說足夠安全(這裏是TLS/SSL),您可以隨心所欲地做任何事情。根據你選擇的模式,你會有更多的工作要做。

通常在用戶憑證旁邊還有一個所謂的API密鑰,Web服務使用它來將每個API請求映射到某個實體,這也可以在身份驗證中扮演某種角色。然而,一個API密鑰就像一個用戶名和密碼,所以它不是那麼靈活。

+0

感謝您的評論。我認爲選項2是我的標題 - 只需在他們發送的數據中請求用戶名/密碼。您提及API密鑰 - 這僅僅是用戶在數據中提供的密鑰(例如隨機數字/字母)嗎?該服務然後在這個鍵上查找它是否有效? – Lock