2010-08-06 121 views
1

我不是一個iPhone開發人員,但我開始基於PHP後端服務器提供數據到iPhone useragents的項目,我想知道從哪裏開始與會議/安全。安裝iPhone應用程序登錄到PHP Web應用程序後端

使用瀏覽器,我可以簡單地在登錄時傳遞一個cookie(包含會話ID)。

但是,我想知道如果iPhone是不同的。 iPhone應用程序是否可以訪問存儲空間以獲取類似Cookie /令牌的內容?他們是否需要注意使iPhone應用程序用戶代理變得特別?

回答

2

默認情況下,使用NSURLRequest的東西使用NSHTTPCookieStorage。當然,Cookie不會在應用程序之間共享。您還可以使用NSUserDefaults或使用鑰匙串(SecKeychain *函數)存儲事物;鑰匙串API有點麻煩,但有一些例子。我更喜歡使用鑰匙串進行任何特別敏感的事情;大多數文件未加密存儲,大多數人不啓用加密備份(我不確定使用沒有密碼的鑰匙串是否安全,但嘿...)

您可能還想擔心多久令牌被保存用於(在iPhone上鍵入是一種痛苦,瀏覽器默認不保存密碼)以及它可以被撤銷的容易程度。

0

iPhone上的Safari瀏覽器與桌面mac或PC上的Safari非常相似。它支持cookies,session,javascript。所以不,關於登錄,你不必做任何特別的事情。

+0

好的,但我不是在談論瀏覽器 - 我正在談論一個iPhone應用程序,通過XML/JSON與服務器進行通信。 – Xeoncross 2010-08-06 18:29:47

5

我的應用程序是同一對平臺。我不會混淆PHP會話或cookie。我通過SSH登錄普通的舊POST'ed用戶名和密碼字段,並返回一個會話令牌(基於他們的用戶名的散列)。在應用程序中,我將其隱藏在NSUserDefaults中。然後,我需要回收令牌,每次調用PHP中需要用戶身份或授權的函數。再次,我只是把它作爲一個普通的老式表單域來傳遞。

順便說一句,我是ASIHTTPRequest庫的Web客戶端功能的大支持者。我與作者沒有關係,我只是一個新興的iPhone開發者,他的圖書館的生活變得更加容易。

+0

永遠不要在用戶名/ ID /電子郵件等基礎上進行哈希。基於'mt_rand()'和當前'microtime()'這樣的隨機事物創建它們會更安全。 – Xeoncross 2010-08-11 16:25:13