我不確定我是否應該在這裏或安全的stackoverflow頁面詢問這個問題,但我確定有人對此有一個很好的答案。Fabric.io Twitter Cridentials安全
我正在構建使用Fabric.io Twitter package
的Android
應用程序。使用此代碼需要TWITTER_KEY
和TWITTER_SECRET
代碼。我試圖隱藏它們,因爲這是他們在添加包時提到的。
在我救了我的cridentials在SharedPreference
像這樣在我的閃屏活動開始的時刻:
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().putString("TWITTER_KEY", "xxxxxxxxxxxxxxxxxxxxxxx").commit();
後來,用於初始化Twitter
包,我recieving他們是這樣的:
TwitterAuthConfig authConfig = new TwitterAuthConfig(PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("TWITTER_KEY", "defaultStringIfNothingFound")
我和TWITTER_SECRET
代碼一樣。
我有兩個問題:
- 什麼能讓人實現,如果他們有機會獲得我的鑰匙?
- 這是否足夠安全,以便其他應用程序無法訪問我的密鑰?
- 這是足夠安全的應用反編譯?
感謝您的幫助!
感謝您的回答!我將它添加到共享首選項中,因爲我已經在某處讀過這是一個安全選項,所以其他正在運行的應用程序無法訪問它,因爲它不是直接作爲具有值的命名變量存儲的(至少我認爲這就是它說:p)。因此,當攻擊者搜索「TWITTER_KEY」或其他東西時,他們無法輕易找到該變量的變量,因爲它隱藏在代碼中,如果這是有道理的。 – Markinson
但現在你已經將它存儲在兩個地方,應用程序代碼和磁盤上;所以攻擊者可以通過兩種不同的方式找到他們。 – Henry
Yeaah ..我想這是對的,但至少應用程序運行時更安全。不是因爲它反編譯時我想。有關如何改善這一點的任何建議? – Markinson