2016-04-07 20 views
0

我最近一直试图在AppEngine上使用一些受限制的类(特别是CookieManager及其导入),可能是因为它们不在whitelist上。限制访问AppEngine上的JRE库类的目的是什么?

我似乎无法找到的是为什么有限制的类首先。我可以从受限制的类中获取源代码,将其复制并粘贴到我自己的包中,一切正常,那么这些类限制中的重点是什么?

我心中的愤世嫉俗者说谷歌希望鼓励代码重复来收取更多的存储空间,但任何人都可以启发我为什么谷歌会任意说你不能访问java.*包中的课程,但你可以在自己的包中访问由完全相同源构建的类?

+0

你能提供这个类的名字呢? –

+0

@IgorArtamonov CookieManager是一个我不得不自己创建的副本,以及它导入的一些类。 – Chris

+0

你应该在你的问题中包括这个。我不认为有可能回答这个问题“_in general_”,因为每个受限制的班级都有自己的理由排除 –

回答

1

存在白名单,因此无法执行提供可能危及环境或应用程序环境的代码的类。这些范围包括可能允许转移沙箱(即您的应用程序空间)以便访问沙箱环境之外的计算机,磁盘或网络的操作。 谷歌用于GAE的容器系统不是公开的,因此不清楚这些可能带来的味道。

JRE中的班级年龄差别很大,许多人有奇怪的行为和偶合,所以班级被列入黑名单并不总是很明显。例如,考虑一下jdbc Driver和DriverManager之间的耦合(并不是说它是一个安全缺陷,只是一个不寻常的API和Java领域的实现)。例如,推测性的cookie管理器可能允许访问其他应用程序中的信息,这是因为处理存储的实现中存在假设。

至于如何棘手一些是识别,这里是从去年公布的例子:enter link description here

+0

非常感谢您为此提供更多见解。关于漏洞的链接看起来特别有趣,因为来自安全公司的报告表明,某些类基于它们所在的包提供了更多权限。我想这意味着要么Google决定'CookieManager'可以允许用户跳出沙箱通过其提升的权限,或者他们只是采取一种更安全而不是抱歉的方式,并没有打扰将其列入白名单。 – Chris