2010-03-25 93 views
1

我正在創建一個從我的服務器上的文件中提取數據的應用程序。該文件根據通過URL傳遞的GET值從我的數據庫獲取數據。保護iPhone的數據饋送應用

我想保持這個飼料關閉 - 也就是說,我不想讓人們自己找到數據源並讀取數據。我認爲發送一個字母數字ID與URL字符串,但如果他們可以找到我打電話的URL,那麼將不會有任何東西阻止他們抓住那個字母數字ID。

我在尋找任何想法或經驗,可能會幫助我在這裏。

回答

2

您可以使用HTTPS,這將防止偶然觀察數據傳輸,儘管它不會完全保護它。

您也可以要求用戶登錄以檢索訂閱源,通過使用設備的UDID作爲帳戶值來側重用戶註冊過程相對容易,然後只需要用戶輸入密碼即可。 ..這種方法仍然可能被惡意個人濫用,但是一旦您引入用戶帳戶,您就可以限制請求。

您也可以在url字符串中使用guid或hash,以防止偶然的觀察者遍歷所有可能的值來刮擦數據庫。

+0

我假設沒有辦法在第一次下載應用程序時自動獲取某人的UDID?我想我可以爲每個下載應用的人創建一個用戶,並使用他們的UDID作爲他們的用戶代碼。我不需要密碼,但是如果某人的UDID對數據進行了瘋狂的調用,我可以將它們關閉 - 但是如果我的代碼在UDID不存在時自動創建用戶帳戶,某人可以避開整個事情,迫使它每次都創建一個新用戶。 – Chris 2010-03-25 17:09:27

+0

你無法通過App store獲得它,但是當第一次運行App時,你可能會調用'[[UIDevice currentDevice] uniqueIdentifier]',它會返回一個GUID給手機,然後你可以將它發送到你的服務器。 – jessecurry 2010-03-25 17:18:55

+0

這可行,但我的觀點是,如果我允許用​​戶從他們的設備向我發送他們的UDID,那麼有人可以獲得數據源的URL併發送一個假的UDID。 – Chris 2010-03-25 17:24:37

0

真的沒有辦法阻止人們閱讀您的Feed。您可以進行模糊處理,但最根本的問題是任何人都可以下載應用程序並檢查它,找出您用來隱藏數據的任何祕密。

但是,將其從臨時觀察者中隱藏起來的事情是將密鑰存儲在應用程序的代碼段中,然後(通過TLS鏈接)將該密鑰傳遞給服務器,然後授予訪問權限。