我目前对Java很陌生并且正在开发Android应用程序,我依靠Google学习了迄今为止为我的第一个应用程序所做的大部分工作。我目前正在使用Eclipse在我的应用上实施Google App Engine。我能够编写后端API并为我的应用程序生成端点。我的应用程序能够进行正确的调用并从我的数据存储中检索信息。然而,我对后台如何在幕后工作感到有点困惑,并且担心我的数据存储的安全性。保护Google App Engine端点
我的问题是:
1)谁可以访问我的终点?到目前为止,我检查了Google API Explorer,并且看不到我的端点的任何方法。有人可以反编译我的APK,找到我的应用程序ID,并创建一个可以调用我的端点方法的应用程序?我知道我可以通过使用客户端ID等来保护它,但如果有人能够伪造这个,他们是否可以访问我的端点方法?
2)我的后端是否安全?有人能够真正阅读我后端的代码吗?我现在的假设是,我在Eclipse中编写并部署到Google的代码将在服务器上运行,并且我的应用程序代码仅包含对它的调用。 (这可能看起来像一个愚蠢的问题,但我已经做了大量的研究,但仍然找不到答案)。
-Edit-我已经做了更多的阅读,并且我相信只有拥有管理员权限的应用引擎管理员才能下载和阅读代码。至于我的应用程序的后端,它只是一个扩展的servlet。如果其客户端ID与我设置的客户端ID匹配,则只能访问这些方法。请纠正我,如果我错了。
3)根据我为后端编写的内容,是否唯一访问我的数据存储?因此,例如,我有一个名为getUser()的函数,它从数据存储区获取有关用户的信息。有权访问我后端的人只能使用方法getUser(),并且不能手动调用datastore.get(userKey)(如果该人以某种方式能够获得密钥)?
研究:
我已经在我的固定终端抬头一看,我目前正在认证具有客户端ID端点的方法。我也写过我的方法,只返回公开信息,没有私人信息。我只是担心有人设法反编译我的应用程序并恢复其上的所有信息将能够使用我的终端,或者更糟的是改变我的后端。我目前正在通过应用程序引擎后端文档进行重新阅读,但希望对此提供任何意见。
谢谢你的时间。
感谢您的详细解答!我认为这回答了我对后端安全性的所有问题。因此,尽管黑客可能能够访问和使用我的端点,但他们将无法读取其实际代码。这真的是我所担心的。谢谢! – noraacee