java - 限制对 AppEngine 上的 JRE 库类的访问的目的是什么?

标签 java google-app-engine

我最近尝试在 AppEngine 上使用一些受限制的类(特别是 CookieManager 及其导入),大概是因为它们不在 whitelist 上。 .

我似乎无法弄清楚为什么首先会有限制类。我可以从受限制的类中获取源代码,将其复制并粘贴到我自己的包中,一切正常,那么这些类限制的意义何在?

我内心的愤世嫉俗者说,谷歌希望鼓励代码重复,只是为了收取更多的存储费用,但是任何人都可以告诉我为什么谷歌会武断地说你无法访问 java.* 中的类吗?包,但您可以访问从您自己的包中完全相同的源构建的类吗?

最佳答案

存在白名单,以便提供可能危及环境或环境中的应用程序的代码的类无法执行。这些范围从可能允许逃离沙箱(即您的应用程序空间)的操作到访问沙箱环境之外的计算机、磁盘或网络。 Google 用于 GAE 的容器系统并未公开,因此尚不清楚这些系统会采用什么风格。

JRE 中的类的年龄差异很大,并且许多类具有奇怪的行为和耦合,因此类被列入黑名单的原因并不总是显而易见。例如,考虑 jdbc Driver 和 DriverManager 之间的耦合(并不是说这是一个安全缺陷,只是 Java 领域的一个不寻常的 API 和实现)。例如,由于处理存储的实现中的假设,cookie 管理器可能允许访问其他应用程序中的信息。

作为一个例子,说明其中一些是多么难以识别,以下是去年的公告:enter link description here

关于java - 限制对 AppEngine 上的 JRE 库类的访问的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36472330/

相关文章:

java - 无法终止 Windows Server 上的 java 进程(无需硬重启)

java - Java中递归查找二叉树中的最小值

google-app-engine - java.security.AccessControlException : access denied (java. lang.RuntimePermission accessDeclaredMembers)

google-app-engine - 有没有人能够获得Go Hello World快速入门演示,使其适用于Google App Engine托管的VM?

java - 为java创建WebSphere管理客户端程序

java - 如果用于计划注释的属性为空,则使用默认值

Java Servlet 和 GWT 服务在第一次请求时不共享 session

json - Dart 通过 EndPoints 将 JSON 发布到 Google App Engine

java - 如何使用 java 将 unicode 字符串保存到数据存储区 google appengine

google-app-engine - 不使用 GWT 的 Google App Engine Eclipse 插件