




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Applet安全限制和签名Applet Cmd进入(我是在c盘根目录下操作以下命令的,jar包用eclipse导出的,将导出的jar包放到c盘根目录下,然后执行以下指令,也就是jar签名,)keytool -genkey -dname cn=BeanSoft Studio, ou=Java Software, o=BeanSoft Studio, c=China -alias beansoft -keypass beansoft -storepass beansoft -validity 365 -keystore .beansoftkeytool -list -keystore .beansoft -storepass beansoftkeytool -export -keystore .beansoft -storepass beansoft -file beansoft.cer -alias beansoftjarsigner -verbose -keystore .beansoft applets.jar beansoft(jar签名,beansoft是密码,具体步骤可以看一下整篇文档)java学习 2009-03-07 23:41:19 阅读75 评论1 字号:大中小订阅 Applet的安全限制 Java平台为了防范恶意程序的攻击,使用了安全管理器,安全管理器执行系统资源的访问控制。许多浏览器为了保护本地主机,对Applet作了如下安全限制: 1)Applet不能运行任何本地可运作程序。 2)禁止加载本地库或方法。Applet只能使用自身的代码或Applet浏览器提供的Java API。 3)禁止读、写本地计算机的文件系统。 4)禁止向提供Applet之外的任何主机建立网络连接等等。网络摘抄:/beansoft/archive/2008/05/11/199801.html?opt=adminApplet安全限制和签名Applet 因为Applet在浏览器中运行,所以,并不是什么操作都能做,例如不能读写创建文件,不能任意连接网站等等,总之就是不可威胁用户电脑的信息安全。下面我们来试试看,新建一个文件操作的Applet,代码清单如下:applets.FileOperationAppletpackage applets;import java.applet.Applet;import java.awt.Label;import java.io.*;public class FileOperationApplet extends Applet public void start() try FileWriter out = new FileWriter(c:test.txt);out.write(测试写入文件);out.close();add(new Label(文件写入成功); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();add(new Label(文件写入失败);。首先我们用Eclipse来运行,当然没问题,因为模拟器为了调试方便,是运行所有的操作的,运行后,界面显示文件写入成功,并且在C盘根目录下可以找到文件test.txt,并看到文件内容。随后我们创建HTML文件,打算在网页文件中运行它,文件代码清单如下:FileOperationApplet.html,接着用浏览器打开这个网页,可以看到如图18.6所示的出错界面和信息提示。这个出错信息完整的内容是:java.security.AccessControlException: access denied (java.io.FilePermission c:test.txt write)at java.security.AccessControlContext.checkPermission(Unknown Source)at java.security.AccessController.checkPermission(Unknown Source)at java.lang.SecurityManager.checkPermission(Unknown Source)at java.lang.SecurityManager.checkWrite(Unknown Source)at java.io.FileOutputStream.(Unknown Source)at java.io.FileOutputStream.(Unknown Source)at java.io.FileWriter.(Unknown Source)at applets.FileOperationApplet.start(FileOperationApplet.java:10)at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)at java.lang.Thread.run(Unknown Source),即:访问拒绝,不能写入文件c:test.txt。这很安全,不是吗?图18.6 Applet安全限制错误然而实话实说,Applet在企业内部网上,还是很有用处的,它一般可以用来做一些复杂的操作,或者是大文件的上传下载,即时消息支持等等,笔者见过不少这样的解决方案(网络上也有人制作了Applet批量文件上传的功能)。不过,这样的限制,虽然是安全了,但是却让Applet的功能大打折扣,那么有没有办法绕过这层安全限制呢?答案是肯定的,这就是Java中推出的签名JAR功能,可以帮助我们在用户同意的情况下,绕过安全限制(当然在内部网没有问题,如果是外网,很容易发生恶意代码,例如恶意删除文件等等)。注意:由于Microsoft也推出了一款JVM,导致了Java标准的分裂,微软格式的数字签名applet打包格式为cab,签名方式也和我们下面描述的内容不同,有兴趣的读者可以去查找相关资料,总之是不通用的。如果是正规的公司,数字证书都是需要购买的,像Verisign之类的公司,提供这样的服务,它的好处就是确保证书是全球唯一的,能够在出现事故时,鉴定是否是有效的数字证书,其实就类似于一份全球唯一的身份证,带有你自己才知道的密码,缺点就是不免费。大家如果在线安装过软件,一般大公司的插件,例如Flash播放器等等,都会带有数字证书。当然,在Java中,不需要这么麻烦,JDK已经提供了一个工具keytool.exe来让开发人员自己生成数字证书(至于安全,加密方面的话题,那就太繁杂了,读者可以自己去查找资料)。如果不想使用命令行版本的这个工具,还可以下载一个开源的软件KeyTool GUI,详见参考资料一节的内容。下面我们就快速进入主题,首先启动CMD命令行工具,然后进入到当前的项目目录,运行下面的命令:keytool -genkey -dname cn=BeanSoft Studio, ou=Java Software, o=BeanSoft Studio, c=China -alias beansoft -keypass beansoft -storepass beansoft -validity 365 -keystore .beansoft这段命令将会创建一个数字文件放在当前目录的二进制文件beansoft中。该证书的别名是beansoft(通过-alias指定),密钥的密码是beansoft(-keypass命令指定),存储密钥的文件密码也是beansoft(- storepass命令指定),证书的有效期是365天(通过-validity指定),并把它存储到密码文件 beansoft中。这段命令执行后,没有出错信息的话即是创建成功。另外,如果是实际的项目的话,最好将两个密码设置成安全级别比较高的密码。除了这样来生成一个密钥文件外,还可以用KeyTool以交互的方式来生成(比较推荐初学者使用这种方式):keytool genkey随后,会提示您输入必须或者可选的内容。随后我们可以检查下这份证书文件的内容,执行下面的命令:keytool -list -keystore .beansoft -storepass beansoft会输出信息:Keystore 类型: JKSKeystore 提供者: SUN您的 keystore 包含 1 输入beansoft, 2008-5-7, PrivateKeyEntry,认证指纹 (MD5): 16:15:A0:47:92:96:29:96:93:5D:F0:76:F7:D0:2C:84。这说明证书没有问题。有时可能需要导出证书供人使用,可以执行下面的命令:keytool -export -keystore .beansoft -storepass beansoft -file beansoft.cer -alias beansoft随后会生成一个beansoft.cer,不过在这里对Applet签名是不需要这样做的,只有在做SSL开发时,才能用得到它。随后,请读者按照 JAR 文件一节所介绍的内容,将Applet的类文件打包成jar文件,名为applets.jar,放在项目的根目录下。接着就进入最关键的,对JAR文件进行签名了,键入下列命令:jarsigner -verbose -keystore .beansoft applets.jar beansoft接着提示信息为:输入密钥库的口令短语:beansoft按下回车,即可看到签名过程: 正在添加: META-INF/MANIFEST.MF 正在添加: META-INF/BEANSOFT.SF 正在添加: META-INF/BEANSOFT.DSA 正在添加: applets/ 正在签名: applets/FileOperationApplet.class 正在签名: applets/LifeCycleApplet.class 正在签名: applets/MyApplet.class 正在签名: applets/usb.jpg可以看到META-INF目录下将会多出两个数字指纹文件,运行的时候JVM将会和类文件进行对比,确保文件没被人篡改过。好了,现在的applets.jar已经今非昔比了,它是个被签名过的JAR,怎么使用它呢?需要在它所在的同一目录下,即项目根目录下,新建一个HTML文件,代码清单如下:FileOperationAppletSigned.html唯一的不同,就是多了粗斜体的archive=applets.jar这句话。好了,最激动人心的时刻到来了,请用浏览器打开这个网页,会看到一个安全提示,如图18.7所示。点击运行按钮,即可看到正确的执行了操作,在用户的C盘上创建了一个文件!很好,我们可以为所欲为了,像写普通Java应用那样来写Applet了!如果点击取消按钮,那很自然的无法创建文件,用户拥有选择权,当然,如果是企业的客户,自然都是让他们选择运行按钮。其实通过这里读者也可以注意到,现在好多网站(例如视频分享的网站等),都会提示您下载一些插件提供
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国实木地板行业发展趋势与投资前景分析报告
- 基金从业电脑考试及答案解析
- 2025-2030中国土壤修复行业商业模式创新与污染场地再开发价值评估
- 2025-2030中国啤酒行业风味创新趋势与消费者接受度评估报告
- 2025-2030中国啤酒行业经销商管理体系优化及渠道激励策略分析报告
- 2025-2030中国啤酒行业智能配送体系构建与最后一公里解决方案研究报告
- 2025-2030中国啤酒行业技术壁垒分析与核心竞争优势评估
- 2025-2030中国啤酒行业人力资源优化与人才培养体系构建报告
- 2025-2030中国啤酒节庆营销模式创新与文化IP打造策略研究报告
- 2025-2030中国啤酒终端动销数据监测体系构建与应用效果实证分析报告
- 中国工商银行2026年度校园招聘考试参考题库及答案解析
- 2025年气象系统公务员录用考试面试真题模拟试卷(结构化小组)
- 风力发电项目审批流程及要点梳理
- 医院污水站维护方案(3篇)
- 视频监控考核管理办法
- StarterUnit3Wele!SectionB1a1e(教学设计)人教版七年级英语上册
- 快递安全收寄培训课件
- 抖音公会入股合同协议书
- 代加工协议合同范本
- 安全注射标准WST856-2025学习解读课件
- 风力发电机组基础工程施工方案
评论
0/150
提交评论