2012-02-23 22 views
5

我在我的Android應用程序的應用程序結算中實現。我幾乎遵循示例(Dungeon)應用程序來使其工作。目前它似乎運行良好。我現在需要決定我應該在安全部分投入多少努力。我在Android應用帳單安全方面付出了多少努力?

我有一個服務器,我可以用它來實現Security.java的東西。我也正在使用標準的PurchaseDatabase實現。

截至目前,我正在考慮用設備專用密鑰對.db文件進行加密,然後單獨使用Security.java。

我的想法是,我的應用程序是一個相當利基的應用程序,我不希望有很多黑客入侵它。如果有些人爲了節省一些錢而付出努力(每件物品只能是1美元),那就這樣吧。

我想我正在尋找其他人對此的看法......看起來沒有100%安全的實現......只是讓黑客不值得付出努力的實現。有其他人看到很多黑客入侵應用程序內購買?

回答

2

你說得對:你不需要實現非常複雜的保護功能,你需要實現保護功能,這些功能需要花費很多時間才能找到並移除下面是來自Google I/O 2011關於減少技術的視頻「leechers」:http://www.youtube.com/watch?v=TnSNCXR9fbY,我徹底推薦它。您可能想嘗試的一些技巧是:

  • 使用LVL;
  • 混淆代碼;
  • 從後臺線程隨機時間調用LVL;
  • 插入與正常代碼混合的許可證檢查;;
  • CRC代碼文件;
  • 要勤奮:在JNI中使用反射來檢查簽名;
  • 加密核心庫/資源並在運行中加載它們。

其中一些技術非常簡單,其他技術則需要不可忽視的努力。最好的建議是有創意,隱藏餅乾不期望的檢查。

另一個重要的問題是如果您懷疑盜版,您的應用程序將會優雅地退化。例如,不要拋出「無效許可證」,因爲您的許可證檢查需要在應用程序啓動時進行網絡訪問;相反,在某個地方存儲「有效期爲兩個月」的令牌並隨機更新它。在隨機天數之後檢查它(例如,30-60天範圍內的隨機整數)。客戶不會注意到這張支票,而且很難破解,因爲它在很多時間之後不會很明顯,比餅乾願意花費在單個應用程序上的時間多得多。

+0

+1對於一個很好的答案。 [This one](http://stackoverflow.com/a/9134578/1124861)也是一個很好的答案。 – 2012-02-28 00:47:19