我想通过API获取JSON数组。我们创建的API运行良好,但我们担心因为我们在Android应用程序上使用API而且可能更容易解开APK并访问我们的API。由于它是Android应用程序,我们无法通过IP限制访问。
但是,我们希望保护对该API的访问权限PHP文件通过App接受。有没有办法验证应用程序在服务器端的拉取请求。
注意:我们正在使用Amazon EC2实例。我不会在此处发布对文件或服务器的直接访问权限。
答案 0 :(得分:2)
您可以使用PackageManager类http://developer.android.com/reference/android/content/pm/PackageManager.html
访问此类APK的签名签名Signature[] sigs = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES).signatures;
for (Signature sig : sigs) {
Log.i("MyApp", "Signature hashcode : " + sig.hashCode());
}
我们可以使用它来与我们的调试密钥或释放密钥的哈希码进行比较,以确定APK是调试APK还是发布APK,或者使用任何其他签名进行签名。
因此,如果有人试图模糊你的apk,应用程序的签名将会改变。
您必须更改API,并且需要发送签名 在Restful API中使用app,以便服务器可以确保API调用 是真的。
此外,您需要在应用程序中启用proguard,以便进行模糊处理。
希望有所帮助。 干杯!!