Java 保护Google应用程序引擎端点

Java 保护Google应用程序引擎端点,java,android,eclipse,google-app-engine,Java,Android,Eclipse,Google App Engine,目前,我对Java和开发Android应用程序还相当陌生,我依靠谷歌了解到目前为止我为第一个应用程序所做的大部分工作。我目前正在使用Eclipse在我的应用程序上实现Google应用程序引擎。我能够为我的应用程序编写后端API并生成端点。我的应用程序能够进行正确的调用并从我的数据存储中检索信息。然而,我有点困惑后端在幕后是如何工作的,我有点担心我的数据存储的安全性 我的问题是: 1) 谁可以访问我的端点?到目前为止,我检查了GoogleAPI浏览器,看不到我的端点的任何方法。有人可以反编译我的A

目前,我对Java和开发Android应用程序还相当陌生,我依靠谷歌了解到目前为止我为第一个应用程序所做的大部分工作。我目前正在使用Eclipse在我的应用程序上实现Google应用程序引擎。我能够为我的应用程序编写后端API并生成端点。我的应用程序能够进行正确的调用并从我的数据存储中检索信息。然而,我有点困惑后端在幕后是如何工作的,我有点担心我的数据存储的安全性

我的问题是:

1) 谁可以访问我的端点?到目前为止,我检查了GoogleAPI浏览器,看不到我的端点的任何方法。有人可以反编译我的APK,找到我的应用程序id,并创建一个可以调用我的端点方法的应用程序吗?我知道我可以通过使用客户端ID等来保护它,但如果有人能够伪造它,他们会获得对我的端点方法的访问权限吗

2) 我的后端安全吗?有人能在我的后端读取代码吗?我现在的假设是,我在Eclipse中编写并部署到Google的代码将在服务器上运行,而我的应用程序代码只包含对它的调用。(这似乎是个愚蠢的问题,但我已经做了很多研究,仍然找不到答案)

-编辑-我已经做了更多的阅读,我相信只有当有人拥有应用程序引擎管理的管理员权限时,他们才能下载和阅读代码。至于我的应用程序的后端,它只是一个扩展的servlet。只有当客户机id与我设置的匹配时,才能访问这些方法。如果我错了,请纠正我

3) 对我的数据存储的唯一访问是否基于我为后端编写的内容?例如,我有一个名为getUser()的函数,它从数据存储中获取有关用户的信息。有权访问我的后端的人是否只能使用getUser()方法,而不能手动调用datastore.get(userKey)(如果此人能够以某种方式获取密钥)

研究:

我已经查阅了保护端点的信息,目前正在使用客户端ID对端点方法进行身份验证。我还以只返回公共信息而不返回私人信息的方式编写了我的方法。我只是担心那些设法对我的应用程序进行反编译并恢复其上所有信息的人将能够使用我的端点,或者更糟糕的是,改变我的后端。我目前正在重新阅读app engine后端上的文档,但如果您对此有任何意见,我将不胜感激


谢谢您的时间。

您担心是对的。看看斯诺登的启示录。以下是经过教育的猜测,您可以尝试确认或排除。如果答案很重要,你可能需要道德黑客的帮助

1) 攻击者有多个机会危害客户端应用程序的安全性。我不认为APK文件格式会混淆端点的URL。APK文件可能以任何人都可以扩展的行业标准方式进行压缩。转储APK的可执行二进制内容将显示其文本字符串、端点名称等。反编译将进一步揭示您的算法、所有方法的依赖关系图以及关于它们的参数的元数据。调试器可能只需一步,就可以作为字节码监视应用程序,而不需要原始源代码

恶意软件似乎比大多数人想象的更为普遍。受损设备可能会将您的所有应用程序流量泄漏到远程计算机进行分析,而攻击者的成本几乎为零。安卓应用程序相对容易发布,这使得该生态系统比iOS更容易受到攻击。其他所有安装的应用程序都可能是你的敌人,尤其是当用户启用根目录时

最近发现的证书颁发机构、DNS缓存损坏、冒名顶替热点和计算机在中间攻击中的发现表明,有动机的攻击者可以在不访问客户端或服务器计算机的情况下记录特定HTTPS流量。但是,攻击者需要为每个受害者花费少量成本,因此只有当您的代码和数据被认为具有足够的价值时,您才会面临风险

客户身份盗窃或伪造可能存在。基本上,第1项)归结为安全性,因为隐蔽性是最低安全性,其破解成本可能较低

2) 后端软件与您的谷歌帐户、自己的计算机和网络连接一样安全。因此相当安全;-)

3) 有两种方法可以访问后端中的数据:通过您实现的API和使用您的Google帐户的管理控制台。如果一个主机提供商秘密地给别人一个后门,他们自然不会承认。我相信当局有能力做到这一点。如果我真的对我的应用程序及其数据心存疑虑,我会不信任每一个平台


总之,所有安全屏障都必须有条件地开放,没有任何安全是绝对的。通过在应用程序中使用明确的安全代码,您可以希望将攻击速度降低到攻击者的成本效益比使在其他地方更容易找到更具吸引力的程度。

感谢您提供的详细答案!我认为这回答了我对后端安全性的所有问题。因此,虽然黑客可能能够访问和使用我的端点,但他们将无法读取其实际代码。这才是我真正担心的。谢谢