在我的Android应用程序中添加Twitter身份验证时,转到Twitter dev,我惊讶地发现我必须像这样初始化Twitter的Fabric
:
import io.fabric.sdk.android.Fabric;
import com.twitter.sdk.android.Twitter;
import com.twitter.sdk.android.core.TwitterAuthConfig;
...
@Override
public void onCreate() {
super.onCreate();
TwitterAuthConfig authConfig =
new TwitterAuthConfig("consumerKey",
"consumerSecret");
Fabric.with(this, new Twitter(authConfig));
}
他们官方推荐我将 API密钥和 API密码作为明文放在我的应用中。即使在此 official sample 中,密钥也会存储在BuildConfig
中。
我正在使用 Proguard ,但即便如此,我无法保证确定的黑客无法利用我的 API Secret 。像 Quora 这样的已建立的应用程序是否也公开了这些密钥?
有人可以发布一个例子来克服这个漏洞,或者就推特为什么这样做提出令人信服的论据吗?
相比之下, Google 和 Facebook 只需要我添加 AppID ,我不得不哈希我的签名证书并链接哈希到各个应用程序。这比以上更安全。
答案 0 :(得分:2)
答案 1 :(得分:0)
您可以在res /目录中创建一个secrets.xml文件,并使用这些值的常量并从您的活动中引用它们。