当前位置:  技术问答>java相关

如何通过Applet调用Windows应用程序?

    来源: 互联网  发布时间:2015-08-07

    本文导语:  希望你提供的方法确实可行,否则请不要浪费时间。谢谢 我试过 Runtime的exec方法,在一般的java程序中可行,但在Applet中不行,有错误提示。 在线等侯。立即给分 | 我是来浪费时间的!!!...

希望你提供的方法确实可行,否则请不要浪费时间。谢谢

我试过 Runtime的exec方法,在一般的java程序中可行,但在Applet中不行,有错误提示。

在线等侯。立即给分

|
我是来浪费时间的!!!~_~
使用数字签名,具体方法如下(转自www.cn-java.com):

Java2下Applet数字签名具体实现方法 

北京 阿费 


自从Java技术开始应用以来,人们对Java平台的安全性以及由于部署Java技术所引发的安全问题给予了极大的关注。特别是在1998年11月Java2发布后,Java的安全体系结构发生了根本的改进,对于终端用户而言,它可以保护文件和私人数据不被恶意的程序或病毒感染和破坏,鉴别代码提供者的身份。对于开发者而言,通过使用API方法,能够将安全性功能集成到应用程序中,因为API的体系结构能够定义和集成对特定的资源的使用权限、加密、安全性管理、策略管理,并提供了一些类来管理公钥/密钥对及信任用户群的公钥证书。同时系统管理员、开发者和用户可以使用它提供的工具管理钥匙库,在JAR文件中生成数字签名、签名的完整性检测、创建和修改策略文件。按照Java设计者的观点,Java安全包括2个方面的内荩紫冉獼ava作为一种安全的平台提供给用户,在此平台上,可安全地运行Java程序;其次提供用Java编程语言实现的安全工具和服务,它使得诸如企业界这样一些对安全非常敏感的领域也可应用Java技术。本文将就这二个方面介绍Java2的安全性新特性以及该新特性下的Applet数字签名的具体实现方法。  

 Java2采用了如图1所示的新的安全体系结构,并基于这种安全体系结构提供了很多新特? 

1.1 密纹访问控制 

  这种能力从一开始就在JDK中存在。但要使用它,应用程序的编写者不得不做大量的编程工作例如,创建SecurityManager和Classloader类的子类并使其用户化。HotJava1.0就是一个这样的应用程序,它允许浏览器用户在几个不同的安全等级上进行选择。然而,这种编程涉及非常敏感的安全问题,它要求程序员对计算机安全有精深的理解和纯熟的技巧。新的安全体系结构将使这些变得简单而安全。 

1.2 易于配置的安全策略 

  与上述情况相似,这种能力在原来的JDK中也是存在的,但是不便于使用,而且编写安全代码也不是简单明了的事情。于是,人们期望能够允许应用程序的编写者和用户能够不通过编程来设置安全策略。 


1.3 便于扩展的访问控制结构 

  一直到JDK1.1为止,为了创建1个新的访问许可,你必须在SecurityManager类中增加1个新的check方法。新的安全体系结构则允许设置各类访问许可(每个都表示对1个系统资源的访问),并能对所有正确访问许可(包括未定义的许可)进行自动处理。 

1.4 安全检查扩展至所有Java程序 

  那种所有本地代码是可信的内置概念将不复存在,取而代之的将是本地代码(例如非系统代码,安装在本地的应用程序包等)服从于与Applet相同的安全控制,但是可以声明对本地代码的政策是最宽容的,从而使这些代码可被认为是完全可信而有效地运行。上述原则也可应用于已签字的Applet和任何Java应用程序。 

2 Java2安全体系的概念及运行机制 

2.1 保护域 
  Java2安全体系结构中的一个基本的概念是保护域(Protected Domain)。1个域可通过对象集来划分范围,这些对象当前可由1个主体直接访问。而主体是在计算机系统中被授予许可的实体。JDK1.0所利用的沙箱就是一个有着固定边界的保护域实例。保护域的概念是一种在保护单元间起着分组和隔离作用的便利机制。例如,我们可以将保护域分开以避免它们之间的直接交互作用,于是,任何允许的交互作用必须通过可信系统代码或被有关的域所明确允许。 

  保护域通常分为明确的2个类别,系统域和应用程序域。所有被保护的外部资源如:文件系统、网络设施以及屏幕和键盘等仅能通过系统域来访问。图2中显示了1个Java应用环境的域的组成。从概念上讲,1个域包括1组类,这些类的实例被授予相同的一组许可。保护域是由现行策略所确定的。Java应用程序环境保持了来自代码(类和实例)到它们的保护域然后再到它们的许可的映射,如图3所示。1个线程的执行可能完全发生在1个单一的保护域中,也可能涉及1个应用程序域或是系统域。例如:1个打印消息的应用程序将不得不与系统域发生交互作用,因为系统域是唯一对输出流的访问点。在此种情况下的任何时候,应用程序域都不能通过调用系统域获得除打印消息外的任何额外许可,否则将是一个严重的安全性隐患。在相反的情形下,1个系统域从1个应用程序域中调用1个方法,如当1个AWT系统域调用1个Applet的绘画方法来显示这个Applet时,有效访问权限与应用程序域所允许的当前权限在任何时候都相同,这一点也是同样至关重要的。换句话说,一个具有较低权限的域不能通过调用一个更高权限的域,或被一个更高权限的域所调用来获得额外的许可。上述有关1个线程涉及2个保护域的讨论自然地归纳为1个遍历多重保护域的线程,计算许可的一个简单而谨慎的经验做法是: 


  (1)一个执行线程的许可集可被认为是由该线程所遍历的所有保护域的许可的交集。 
  (2)当1条代码调用doPrivileged方法时,执行线程的许可集被认为是包括所有代码的保护域以及由它直接或间接调用的保护域的权限。即通过doPrivileged方法可使1条可信代码能临时访问更多的资源,这在某些情况下是必要的。例如,1个应用程序可能不被允许直接访问包含字体的文件,但是,显示文本的系统实用程序必须代表用户获得那些字体。 

  在执行期间,当请求访问1个关键系统资源(如文件I/O和网络I/O)或者API方法需要执行1个敏感的操作时,例如读1个文件,资源处理代码直接或间接地调用1个特殊的称为访问控制(AccessController)类的方法,访问控制类通过检查调用栈来作出决定是否准予该请求或操作发生。在调用栈中是执行该操作需要调用的一些类的成员方法,因为每个类都属于一些保护域,每个保护域都建立了一些策略,因此在调用栈的每个方法都被分配了1组权限。访问控制类由栈顶开始,自顶向下检查每个方法,看是否方法被所在的保护域所允许,如果发现一个方法权限没有得到允许,访问控制 
就抛出安全性异常;反之,如果到达栈底仍未抛出异常,即说明调用栈中的所有方法均满足保护域的权限要求,访问控制允许操作发生。其中有一种特殊的情况,即当访问控制遍历调用栈时,将查找是否存在优先域(Privileged Domain),如果存在优 
域,即使没有到达栈底,访问控制也将停止遍历调用栈并允许操作发生。虽然新的安 
机制初看上去增加了许多调用API方法的消耗,但是Java2确实使用了一些技术去加速 
查权限的过程,例如访问控制将过滤掉重复的域并在遇到第一个优先域时停止检查, 
说明额外的操作将是一个本地的方法调用,SUN的基准测试显示了新的安全检查是相当快的。 

  最后,每个域包括系统或应用程序域可以对其域边界内的内部资源进行附加保。例如,一个银行系统的应用程序可能需要支持并保护其内部的一些概念,如查帐、存 
和取款等。由于此种保护的语义不像那些可预测的语义可以被JDK预置,因而,在这个 
次上的保护最好留给系统或应用程序开发员来做。 

  目前,1个域单独地由1个代码来源(CodeSource)鉴别,它封装了在该域中运行的代码的2个特性:代码基址和公共密钥证书集,公共密钥对应于在该域中为所有代码签字的私有密钥。因而,由相同的密钥签字和来自相同URL的类被放在同一个域中。1个域还包含在该域中授予代码的许可,它是由现行安全策略所决定的。 



|
等我查一下资料

    
 
 

您可能感兴趣的文章:

  • 我c调用b.so,b调用a.so编译能通过,运行时找不到库怎么办啊?????
  • 如何通过JSP调用JavaBean
  • Linux g++编译调用模板函数的类不通过,但是VC2005通过
  • 我通过servlet调用jsp页面
  • 我如何在代码里通过调用"ping"命令得到它的exit code
  • C语言调用shell脚本后,通过何种方法能获取脚本中变量的值
  • 请问 linux 是如何调用 alsa的控制接口的??是通过控制接口名字吗?
  • Java中如何通过方法名动态调用方法?
  • 请问,如何通过Java调用ActiveX控件?
  • linux下能够通过系统调用读取文件的物理地址等信息吗?
  • 如何不重编内核,而通过加载模块来增加系统调用?
  • 如何通过java程序调用vb程序
  • 在SQL中有函数,比如COUNT(*),怎样通过JDBC调用获得函数值????
  • 如何实现在一个程序中,通过不同的Class名称调用不同的Class。
  • 各位大虾,谁知道怎么通过jdbc调用sqlserver2000的存储过程
  • 请教怎样通过一个字符窜ID来定位bean,再调用EJBHome.remove()的方法来删除??
  • python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
  • 怎样通过调用findAll()将数据库中的字段全部取出!
  • 在WINDOWS下面怎么通过SAMBA访问LINUX? iis7站长之家
  • c#通过进程调用cmd判断登录用户权限代码分享
  • 通过FTP如果运行远程服务器上一个应用程序?
  • solaris下通过应用程序如何访问pci设备的配置空间,i/o空间等?
  • linux驱动程序是怎样通过内核和应用程序通信,还有是怎样和硬件通信,跪求求解,谢谢高手留言。
  • 如何不写驱动通过应用程序获得一块内存并取得它的物理地址?
  • HP-UX系统,用户应用程序通过TELNET联到服务器,突然全部断开...
  • 在客户端是否可以通过SSH关闭正在服务器上后台运行的应用程序!
  • 请教下,应用程序使用通过驱动程序使用设备的过程
  • unix通过crontab 定时启动oracle应用程序??????????
  • 请问如何通过telnet的方式启动服务器(solaris)上的用.sh角本方式启动java写的应用程序,在退出telnet时服务器上的应用程序不会退出?
  • linux编程设计:如何实时监控并统计应用程序通过linux服务器各端口的流量,以及显示及时速率,源IP,目的IP,类型(TCP、UDP、FTP、HTTP等)?
  • 请教:怎样通过应用程序配置网络
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户
  • 请指点: 在windows下能否通过程序来获取linux下的用户列表,甚至通过自己写的windows程序界面增加修改linux的用户 100分相赠
  • 如何将linux的一台机器加入windows 2000的域?并且通过一windows的机器上网?
  • 求windows下成功编译通过mplayer的详细步骤
  • windows下怎样通过网络读写linux下的文件
  • unix环境如何通过shell或java获取windows机器上的csv文件?
  • webwin 为什么不能在windows系统上通过web访问?
  • 在WINDOWS下面怎么通过SAMBA访问LINUX?
  • linux(FC1)下,如果共享一个文件给WINDOWS系统通过网络访问
  • [Fedora] 使用Xmanger来实现在windows下通过远程桌面来访问linux主机的方法
  • 请问如何用windows服务器通过网络来批量克隆linux系统?
  • Ubuntu如何通过无线网卡连接到windows
  • 同一台机器通过路由上网,windows能上的网站ubuntu上不了
  • 现在windows98已经通过modem拨号登陆上了unix,但却无法ping通。
  • 有什么软件可以通过网络把文件从windows发送到嵌入式机的linux
  • 各位高手,请问怎样通过局域网连接Windows和Linux啊?
  • 请问各位高手,怎么样在windows上通过批处理脚步启动solaris上的编译器,实现自动编译?(solaris通过telnet登陆)?
  • 怎样通过VMWare,将Windows(host)下载的文件传到Red hat Linux(guest)上
  • linux和windows通过交换机联网的问题
  • linux的机子可不可以通过windows的机子共享上网
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • applet可以不通过数字签名,通过设置IE直接在本地访问本地文件吗
  • php通过socket_bind()设置IP地址代码示例
  • 我使用.net编译通过,但是使用g++编译不能通过。总是提示我undefined reference to ~myclass()
  • 通过javascript库JQuery实现页面跳转功能代码
  • 紧急求救!能通过jdbc怎样连接sqlsever 然后通过 for xml 关键字得到xml流吗?
  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • 我想我的网站屏蔽掉通过某些网站过来的访问,我想通过htaccess 文件来做,请大家帮帮我。
  • linux下通过crond实现自动执行程序
  • 如何通过INTERNET访问通过共项一条线路上网的局域网中的机器???
  • 通过docker commit命令保存对docker容器的修改


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3