我目前对Java和开发Android应用程序还比较新,我依赖谷歌学习我迄今为止完成的第一个应用程序的大部分内容。我正在使用Eclipse在我的应用程序中实现Google App Engine。我能够很好地编写后端API并生成我的应用程序的端点。我的应用程序能够正确调用并从我的数据存储库中检索信息。然而,我对后端实际上是如何工作有些困惑,并且对我的数据存储安全有些担忧。
我的问题是:
1)谁能访问我的端点?到目前为止,我检查了Google API Explorer,没有找到任何关于我的端点的方法。有人可以反编译我的APK,找到我的应用程序ID,并创建一个可以调用我的端点方法的应用程序吗?我知道我可以通过使用客户端ID等来保护它,但如果有人能够伪造这个,他们会获得访问我的端点方法的权限吗?
2)我的后端是否安全?有人能够真正读取我的后端代码吗?我现在的假设是,我在Eclipse中编写并部署到Google的代码将在服务器上运行,我的应用程序代码只包含对它的调用。(这可能看起来像一个愚蠢的问题,但我一直在做很多研究,还是找不到答案)。
-编辑- 我已经阅读了更多的内容,我相信只有当他们拥有应用程序引擎管理权限时,某人才能够下载并阅读代码。至于我的应用程序后端,它只是一个扩展的servlet。只有当他们的客户端ID与我设置的匹配时,某人才能访问这些方法。如果我错了,请纠正我。
3)对我的数据存储库的唯一访问是否基于我为后端编写的内容?例如,我有一个名为getUser()的函数,从数据存储库中获取有关用户的信息。如果某个人以某种方式获得了这个密钥,那么只有访问我的后端的人才能使用getUser()方法,而不能手动调用datastore.get(userKey)吗?
研究:
我已经查找了保护我的端点,并正在努力使用客户端ID验证端点方法。我还以这样的方式编写了我的方法,以仅返回公共信息而不包含任何私人信息。我只是担心,有人成功反编译我的应用程序并恢复所有信息后,将能够使用我的端点,或者更糟的是修改我的后端。我目前正在重新阅读应用程序引擎后端的文档,但对此事的任何意见表示感谢。
谢谢您的时间。