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

未签名Java小程序的功能限制?,java,security,applet,jvm,Java,Security,Applet,Jvm,我试图编译一个完整的列表,列出对未签名Java小程序的所有限制(定义为普通Java应用程序可以做的事情,但未签名Java小程序不能) 这是我到目前为止整理的列表: 未签名的Java小程序 无法访问本地文件系统。 无法访问系统剪贴板 无法启动打印作业 无法连接到任何第三方服务器或从任何第三方服务器检索资源(小程序源服务器以外的任何服务器) 无法使用多播套接字 无法创建或注册SocketImplFactory、URLStreamHandlerFactory或ContentHandlerFactor

我试图编译一个完整的列表,列出对未签名Java小程序的所有限制(定义为普通Java应用程序可以做的事情,但未签名Java小程序不能)

这是我到目前为止整理的列表:

未签名的Java小程序

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

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

    请参阅Sun的教程:。

    此外,您不能注册
    未捕获的ExceptionHandler

    小程序(来自6u10)可以使用JNLP API访问本地文件系统(在用户的控制下)。系统剪贴板在某些条件下可用。如果应用程序尝试打印,将显示确认对话框。跨域支持允许在服务器权限下访问web服务器。可以侦听服务器套接字,但只能接受来自同一来源的套接字。没有程序可以在
    java.*
    中定义类,但我相信applet可以在
    sun.*
    中定义它们(只是没有用)。小程序的事件队列是可访问的。反射是基于Java(1.0)语言访问的。你是从什么地方得到这个列表的吗?如果你真的想要一个完整的检查列表,你可以在源代码中找到
    SecurityManager
    ,尽管这不包括任何扩展库限制。汤姆:这个列表是网络上类似的不完整列表的汇编。