2013-12-16 67 views
2

我正在用Phonegap構建一個應用程序。它只是讀取xml提要,以顯示學校上傳的最新文章,供家長閱讀。從Phonegap應用程序到REST服務器的認證

會有一個選項,應用程序的每個用戶都可以決定是否要接收推送通知。我有一個簡單的數據庫表,其中設備的註冊i.d.從Google雲端控制檯存儲。當用戶點擊「是」時,註冊i.d.被生成並存儲在服務器上。如果他們點擊「否」,則會被刪除。我想通過基本的HTTP認證來保證這些調用到服務器。

我在基本身份驗證中看到的任何文檔都描述了發送用戶名和密碼。但是用我的應用程序,沒有用戶名或密碼,因爲用戶不需要註冊。我發送什麼來驗證客戶端?在客戶端是否會有一個硬編碼密鑰並隨每個請求一起發送?可以通過解壓縮.apk文件輕鬆揭示它嗎?

回答

2

由於您有權訪問服務器端,因此您可以控制整個過程。所以,爲了處理這個問題,你可以考慮一些類似於會話cookie的事情,即在正常認證的情況下,Web服務器創建的會話cookie。

我做了類似的事情,我所做的是生成一種令牌服務器端存儲在設備或localStorage的cookie中。

所以流程應該是這樣的:

  • 生成令牌並將其存儲設備(Cookie或本地存儲)上。
  • 對於每個請求,請在http標頭中發送此值
  • 從服務器端,您可以從該標記中識別用戶。
    例如:您維護一個標識設備/令牌的表。

就是這樣

3

我反對這個問題的前提。實際上,我認爲這不是一個安全問題,而是一個偏好問題。瞭解這種區別使得功能的開發變得更加容易。

只需修改您的應用程序以允許用戶配置他或她希望在設置中看到的內容,然後在客戶端(如本地存儲)上隨意存儲所需的任何位置。服務器可以像以前一樣推送,但應用程序應該拒絕呈現用戶不想看到的推送。

如果您想簡單地向想要查看它的用戶發佈非敏感內容,這是一個偏好問題和/或發佈/訂閱問題。但這不是一個安全問題。

0

除了其他答案,你可以傳遞一個自定義的useragent字符串作爲請求的一部分,並驗證它與你所期望的一致。這不是一個確保'安全'請求的方法,而是一個(簡單)令牌系統和HTTPS,這足以滿足您的需求。

相關問題