2016-09-29 101 views
3

我正在開發一個Android應用程序,並且我計劃在「Open Beta」上發佈這個版本,其中的Google Play商店Android應用程序的安全

我要實現的應用程序安全邏輯,可確保測試建立之後不會某個日期DD/MM/YYYY工作。

目前,我能想到的兩種方法爲這個邏輯:

  1. 從設備檢索當前日期(使用Android代碼來檢索系統時間)

    問題:用戶可更改設備日期以破解安全系統

  2. 使用時間服務器檢查當前牛逼日期

    問題:我的應用程序不需要互聯網連接,因此這將是糟糕的用戶體驗,如果我在應用

我開始要求互聯網連接以下幾個問題:

  1. 可以用什麼替代方法(其他然後檢查日期),以確保應用程序不會日期DD/MM/YYYY後工作嗎?
  2. 如何檢測用戶是否手動更改了設備日期?
  3. 即使設備處於脫機狀態,也可以使用其他方法查找當前日期?

編輯: 貝塔構建具有所有高級功能免費的,所以我不想公測打造的最新DD/MM/YYYY後工作。

新的問題:

我已經實現了代碼來檢查使用時間服務器在應用程序開始真正的日期。用戶在dd/MM/YYYY之後訪問應用程序可能會做什麼樣的黑客攻擊?

預先感謝您。

+0

您可以考慮的另一種方法是允許app在beta版本中運行的次數。在任何情況下,它的日期/時間用戶都可以隨時清除應用程序緩存或反向日期。檢查日期在線將是防止誤用的最佳選擇 –

+0

當您連接到互聯網時,您不必通知用戶,在後臺執行此操作。如果服務器時間超過日期,則不允許訪問應用程序,並向用戶顯示Beta應用程序超出使用日期的消息。 –

+0

謝謝你的評論。我們可以在後臺進行日期檢查,但由於應用程序可以脫機工作,因此許多用戶的設備可能處於脫機狀態。 –

回答

0

新的權限模式包括默認的「Internet」(您不需要專門請求它)。

+1

感謝您的回覆。我並不擔心互聯網許可,但由於應用程序可以脫機工作,因此許多用戶的設備可能處於脫機狀態。 –

1

同意你不希望設備依賴於互聯網。但是,在某些時候,該設備將在線(一個人將永遠不會離開他/她的設備脫機,因爲你的應用程序安裝)。此時您檢查時間戳並從那裏開始。您可以禁用該應用程序或執行任何操作。許多應用程序都會在網絡連接時顯示此行爲以便運行操作。 除了網絡和設備時鐘以外,您擁有的唯一其他最終解決方案是從安裝應用程序的那一刻開始運行後臺計時器。祝你好運

-1

您可以檢查日期,並且在日期超過截止日期時,您可以在首選項中保存一個變量,以便當您輸入應用程序時,即使它們更改日期,應用程序也會檢測該日期已被超過。

+0

如果在超過延長試用期之前日期發生了變化,該怎麼辦? – Beloo

+0

Beloo您可以保存安裝日期並計算日期當應用程序工作時,當它達到所需數量時,限制訪問。但是,真的,我不認爲人們在到期前更改日期。然而,沒有什麼是萬無一失的,一切都可以跳躍。 – Krowne

+0

爲什麼不。假設你想作弊並繼續一些訂閱。所以如果訂閱邏輯僅基於當地時間,將有可能繼續這樣的訂閱永遠 – Beloo

0

如果你不想使用互聯網,你可以使用下面的想法。首次運行應用程序時獲取當前時間戳並將其保存到外部存儲中。每次用戶啓動應用程序時,檢查當前時間戳和保存的時間戳。請檢查負值以防止用戶設置以前的日期。