我已将API_TOKEN存储在常量文件中并使用了proguard。如果有人将反编译apk,他可以看到API_TOKEN访问REST API' s 那么,如何保护它以及存储APITOKENS的最佳方式是什么;
这是我的代码
restAdapter.setRequestInterceptor(new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Accept", "application/json");
request.addHeader("Authorization", "Token token=" +
ConfigurationFile.API_TOKEN);
}
});
答案 0 :(得分:1)
不要将其存储在应用中。从服务器下载它,并将其存储在密钥库中,或使用密钥库中的密钥加密。当然,如果有人愿意付出足够的努力,任何一种方式仍然可以解决。
如果你真的害怕,根本不要使用它。让您的服务器发出所有请求,并通过您的服务器发送您的请求。但这可能会耗费大量带宽。
答案 1 :(得分:0)
您可以做的是从BuildConfig
文件中获取令牌。在项目的根目录中创建一个名为my_file.properties
的文件。将令牌保留在那里,然后在构建(app)中定义该文件的实例。在构建类型下,使用该文件实例中的该值创建新的构建配置字段。
最终,您的令牌值将从您创建的my_file.properties
文件中获取。
有关详情,请参阅Gradle tips