未签名的 Java 小程序的功能有何限制?

发布于 2024-08-06 08:49:24 字数 1303 浏览 1 评论 0原文

我正在尝试编译对未签名的Java小程序施加的所有限制的完整列表(定义为普通Java应用程序可以执行的操作,但未签名的Java小程序不能执行的操作)。

这是我迄今为止编译的列表:

一个未签名的 Java 小程序...

  1. 无法访问本地文件系统。
    • 无法访问系统剪贴板。
    • 无法启动打印作业。
    • 无法连接到任何第三方服务器(小程序源自的服务器以外的任何服务器)或从任何第三方服务器检索资源。
    • 无法使用多播套接字。
    • 无法创建或注册 SocketImplFactoryURLStreamHandlerFactoryContentHandlerFactory
    • 无法侦听传入的套接字连接。
    • 无法侦听数据报。
    • 无法访问某些系统属性(java.class.path、java.home、user.dir、user.home、user.name)。
    • 无法创建或注册 SecurityManager 对象。
    • 无法使用 RuntimeSystemload()loadLibrary() 方法动态加载本机代码库>.
    • 无法通过调用任何 Runtime.exec() 方法生成新进程。
    • 无法创建或访问运行不受信任代码的线程组之外的线程或线程组。
    • 无法在 java.*sun.*netscape.* 中定义类。
    • 无法从 sun.* 包中显式加载类。
    • 无法通过调用 System.exit()Runtime.exit() 退出 Java 运行时。
    • 无法访问系统事件队列。
    • 无法使用 java.lang.Class 反射方法获取有关类的非公共成员的信息,除非该类是从与不受信任的代码相同的主机加载的。
    • 无法以任何方式操纵安全身份 (java.security)。
    • 无法设置或读取安全属性 (java.security)。
    • 无法列出、查找、插入或删除安全提供程序 (java.security)。

问题:是否缺少任何限制?如果是这样,请明确说明您认为列表中缺少哪些限制。

I'm trying to compile a complete list of all restrictions placed on unsigned Java applets (defined as things a normal Java application can do, but an unsigned Java applet cannot).

This is the list I've compiled so far:

An unsigned Java applet ...

  1. Cannot access the local filesystem.
    • Cannot access the system clipboard.
    • Cannot initiate a print job.
    • Cannot connect to or retrieve resources from any third party server (any server other than the server the applet originated from).
    • Cannot use multicast sockets.
    • Cannot create or register a SocketImplFactory, URLStreamHandlerFactory, or ContentHandlerFactory.
    • Cannot listen to incoming socket connections.
    • Cannot listen for datagrams.
    • Cannot access some of the system properties (java.class.path, java.home, user.dir, user.home, user.name).
    • Cannot create or register a SecurityManager object.
    • Cannot dynamically load native code libraries with the load() or loadLibrary() methods of Runtime or System.
    • Cannot spawn new processes by calling any of the Runtime.exec() methods.
    • Cannot create or access threads or thread groups outside of the thread group in which the untrusted code is running.
    • Cannot define classes in java.*, sun.* and netscape.*.
    • Cannot explicitly load classes from the sun.* package.
    • Cannot exit the Java runtime by calling System.exit() or Runtime.exit().
    • Cannot access the system event queue.
    • Cannot use the java.lang.Class reflection methods to obtain information about nonpublic members of a class, unless the class was loaded from the same host as the untrusted code.
    • Cannot manipulate security identities in any way (java.security).
    • Cannot set or read security properties (java.security).
    • Cannot list, look up, insert, or remove security providers (java.security).

Question: Are there any restrictions missing? If so, please clearly state what restriction you believe is missing from the list.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

嘴硬脾气大 2024-08-13 08:49:25

此外,您无法注册 UncaughtExceptionHandler。

Also you cannot register an UncaughtExceptionHandler.

躲猫猫 2024-08-13 08:49:24

请参阅 Sun 的教程:Applet 可以做什么和不能做什么

See this from Sun's tutorial: What Applets Can and Cannot Do.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文