java – 保护Google App Engine端点

我目前对
Java和开发
Android应用程序都很陌生,我依靠Google来了解到目前为止我为第一个应用程序所做的大部分工作.我目前正在使用Eclipse在我的应用上实现Google App Engine.我能够编写后端API并为我的应用程序生成端点.我的应用程序能够进行正确的调用并从我的数据存储中检索信息.但是,我对后端实际上如何在场景后工作有点困惑,并且有点担心我的数据存储的安全性.

我的问题是:

1)谁能够访问我的终端?到目前为止,我检查了Google API资源管理器,看不到任何针对我的端点的方法.有人可以反编译我的APK,找到我的应用程序ID,并创建一个可以调用我的端点的方法的应用程序?我知道我可以通过使用客户端ID等来保护它,但如果有人能够伪造这个,他们是否可以访问我的端点方法?

2)我的后端安全吗?有人能够真正阅读我后端的代码吗?我现在的假设是,我在Eclipse中编写并部署到Google的代码将在服务器上运行,而我的应用程序代码只包含对它的调用. (这可能看起来像一个愚蠢的问题,但我一直在做很多研究,但仍然找不到答案).

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

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

研究:

我已经查找了保护我的端点,目前正在使用客户端ID验证端点方法.我还以这样的方式编写我的方法,即只返回公共信息而不返回私人信息.我只是担心有人设法反编译我的应用程序并恢复其中的所有信息将能够使用我的端点,或者更糟糕的是改变我的后端.我目前正在重读应用程序引擎后端的文档,但会对此事的任何意见表示感谢.

感谢您的时间.

最佳答案 你是对的担心.看到斯诺登的启示.以下是您可以尝试确认或解雇的有根据的猜测.如果答案很重要,您可能需要道德黑客的意见.

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

恶意软件似乎比大多数人想象的更广泛.受损设备可能会将您的所有应用流量泄漏到远程计算机进行分析,而攻击者的成本几乎为零. Android应用程序的发布相对容易,使得该生态系统比iOS更容易受到攻击.每个其他已安装的应用程序都可能是您的敌人,特别是如果用户启用了root.

最近发现的受损证书颁发机构,DNS缓存损坏,冒名顶替热点和计算机中间攻击表明,有动力的攻击者可以记录您的特定HTTPS流量,甚至无需访问客户端或服务器计算机.但是,攻击者需要为每个受害者支付少量费用,因此如果您的代码和数据被认为具有足够的价值,那么您只会面临风险.

客户身份盗窃或伪造可能是可能的.基本上,项目1)归结为安全性,通过默默无闻是最小的安全性,其破解成本可能很低.

2)后端软件与您的Google帐户,自己的计算机和网络连接一样安全.因此非常安全;-)

3)有两种方法可以访问后端的数据:通过您实施的API以及通过管理控制台和您的Google帐户.如果托管服务提供商秘密地向其他人提供后门,他们自然不会承认.我相信当局有能力实现这一目标.如果我对我的应用程序及其数据真的很偏执,我会不相信每个平台.

总之,所有安全障碍必须有条件地开放,没有绝对安全.通过应用程序中的显式安全代码,您可以希望将攻击速度降低到攻击者的成本与收益比率使得在其他地方找到更容易的肉更具吸引力的程度.

点赞