Java语言安全性

Java语言安全性

ID:39550208

大小:52.00 KB

页数:8页

时间:2019-07-06

Java语言安全性_第1页
Java语言安全性_第2页
Java语言安全性_第3页
Java语言安全性_第4页
Java语言安全性_第5页
资源描述:

《Java语言安全性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java语言安全性硬件,操作系统,编译系统,数据库系统,应用软件系统。编程语言的安全性。人员,管理制度。Java的安全性被认为就是字节码和虚拟机的安全性。应用程序的安全性,程序中存在的瑕疵或危及程序安全的不当操作,以及程序运行所处的操作环境。网络的安全性保证措施包括对用户和应用程序的组件进行鉴权、授权,并对通信内容进行加密解密。Java语言具有完善的安全框架,从编程语言,编译器、解释程序到Java虚拟机,都能确保Java系统不被无效的代码或敌对的编译器暗中破坏,基本上,它们保证了Java代码按预定的规则运作

2、。Java是惟一一种从设计的开始就考虑安全性的移动代码。8编译器是Java语言最底层的安全机制Java编程语言安全性异常处理在低级代码中出现异常较为常见,因此要么通过把它传递到到高级异常中暂时隐蔽起来待以后再次出现,要么可以作一些起基本的处理。本地方法应当小心应用本地方法。本地方法是在Java安全系统之外。安全管理员和其他Java安全机制都不能控制本地代码的运行。因此本地代码出现错误或违反安全规则时,将会是致命的。应当检测本地方法所用的参数和它们的返回值。尤其是当一个本地方法有效地绕过Java安全核查时。J

3、ava语言的编译器在对代码的编译过程中保障了部分的安全性。这主要是通过以下这几点来实现:1.强定义1语言中所有原始类型都必须是预先定义的长度2所有的操作都必须按照一定的顺序执行。8两个正确的Java编译器对同一程序的执行不应产生不同的结果。1.去掉指针Java编译器是通过符号指针来引用内存,符号指针是由Java运行系统在运行时,具体解释为实际的内存地址,Java对指针进行完全的控制。程序员不能强制引用内存指针或直接进行任何指针操作,这样Java的内存分配和引用模型对于程序员是透明的,它完全由底层的运行系统控

4、制,程序员不能通过修改代码而直接指向一个物理内存布局。Java语言中不含有指针结构,所以Java程序不能通过创建指针来读、写任意内存区域。但是这种方法在避免安全漏洞的同时,也失去了c语言中的编程的灵活性。在Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,实际分配给对象的内存,可能随程序运行而改变,有效地防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。81.无用单元的回收它解决了在c和c++中存在的两个漏洞:忘记释放内存单元和两次释放的是同一内

5、存单元。忘记释放内存单元可能会造成操作系统崩溃等。释放同一内存单元两次却可能会导致内存单元的无法定位。Java的无用单元回收可以消除了大多数的内存分配错误。2.编译过程中严格的检测Java编译器在编译过程中进行广泛的、严格的检测,可以在编译过程中发现尽可能多的错误。8类文件验证类文件验证,第一步就是将类读入解释器,即类加载.然后进一步判断类文件的格式是否符合规定。再就是字节代码验证。字节代码验证器保证了只有合法的代码才可以执行。编译器把Java程序转换成与机器无关的字节代码。在新下载的applet运行前,字

6、节代码验证器被激活,以便核查applet是否符合Java语言的规范,以及有没有违反Java语言规则或名字空间限制。这是因为基于安全的原因,JVM对类文件中的代码作了严格的格式和结构限制。验证器也核查是否违反内存管理规定、堆栈下溢或溢出、以及非法数据类型的丢弃。这些问题可能使一个怀有敌意的applet对安全机制造成部分的破坏,或者applet用自身的代码在运行其间替换系统的一部分。字节代码验证器和JVM一起用来保证运行其间语言类型的安全。例如,在数组中存储引用时,Java用运行时间类型核查来保证彻底的类型安全

7、。8高层安全模式Java高层安全的实现完全基于软件技术。早期,SUN采用了沙盒模式(sandbox)——Web浏览器为动态下载的代码分配的运行区域来保证其安全性。即Java无条件接受所有动态下载的代码,并限制其运行于沙盒中。而且,假设沙盒是一个程序执行的安全防护网。如果这个网上没有洞,那么程序运行就是安全的。Java安全完全依赖于沙盒的正常运行。8一般来说实现技术越是复杂,则漏洞越多,越容易被攻击。而Java的安全隐患就恰恰来自于执行沙盒的软件的复杂性。同时,沙盒将所有的动态下载的代码均看成是潜在可疑的,严

8、格限制了代码多种行为,使代码的执行缺乏灵活性。如applet不能读取或修改存储在用户系统上的文件系统,因此就无法进行文件编辑的动态存取。沙箱模型的实质是,本地代码是可信的,因而可全部访问关键系统资源(如文件系统);而下载的远程代码(一个applet)是不可信的,因而只能访问由沙箱内部所提供的有限资源。安全模型很简单:本地类拥有全部权限,而远程类仅局限于沙箱8JDK1.0和JDK1.1安全模型采用的方法都是要么拥有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。