2012-06-18 81 views
1

我已經構建了一個應用程序,該應用程序通過POST將HTTP請求中的JSON數組從Android發送到PHP服務器。Android PHP Webservice安全

我的問題是如何使這個安全嗎? 如何在服務器端以安全的方式進行身份驗證?

發送帶有SSL連接的數據就足夠了?或者我應該用RSA加密它還是什麼?

+2

從我的觀點提出的建議,將設備的IMEI與JSON數組一起發送,並且IMEI必須存在於駐留在服務器上的數據庫中。如果兩個匹配,那麼它是有效的JSON數組,否則不是。 – Lucifer

+0

可以解釋更多?你在尋找什麼樣的保證?你想要基於用戶名和密碼的身份驗證? – Adi

+1

我喜歡路西法的想法。 –

回答

1

這取決於你想要保護的內容,SSL將阻止任何人在通信中收聽,你不需要在頂部添加其他加密。

如果您要保護網絡服務本身免遭未經授權的使用,那麼您需要用戶註冊併發送用戶名&密碼(或更好的密碼哈希)來連接,然後您可以使用每個請求的密碼或生成密鑰將隨每個請求一起發送以驗證用戶身份。

IMEI的想法不是太好,因爲如果你有1,2個以上的用戶,你首先需要讓每個人的IMEI成爲一個巨大的痛苦,即使這樣,你的Android應用程序可以拆開並提供任何IMEI服務。

+0

IMEI非常棒,因爲我的公司將向銷售人員提供這些設備,並且該應用程序將安裝在該設備上。我現在懷疑的是,我是否應該在一個請求(用戶,傳遞,imei和json)中發送所有信息,或者發送請求進行身份驗證併發回一個密鑰以用於發送JSON的第二個請求? –

+0

這兩個步驟無關緊要,只要它遍佈SSL即可。如果它的內部應用程序,那麼你可以管理IMEI,但請記住一個Android應用程序可以拆分,並改變到它真的沒有多少額外的保護。 – mbwasi

1

使用IMEI作爲路西法考慮建議我會做這種方式:

  1. 打開一個Android應用程序 - 如果我不是在應用程序登錄會告訴我一些LoginActivity
    1. 我放在登錄名和密碼,然後點擊「登錄」按鈕
    2. 您在Android應用程序中散列密碼併發送HTTP POST請求到服務器,其中包含登錄,散列密碼和imei
    3. 服務器部分將嘗試登錄該用戶並記錄任何不足te行爲或輸入)並返回true或false(取決於用戶是否可以登錄)
    4. 將應用程序中的登錄信息存儲在應用程序的某處,以便用戶在每次關閉並重新打開時都不必登錄應用程序 - 而應用程序在後臺運行(直到Dalvik的決定將其殺死)作爲登錄的用戶應該考慮...
  2. 如果用戶登錄,進行使用應用程序

在這種情況下,使用SSL(HTTPS)是必須的.​​..