语言的安全: 无指针地址操作,空指针检查,数组越界检查,类型转换检查,使得保证程序运行在jvm沙箱中,不会破坏其它区域的内存。
代码的安全:java文件编译后得到的class文件,jvm的classloader加载class文件中的bytecode时,会做一系列的检查
代码的合法性: jar包中包含整个java文件的签名,使用证书签署中心签署的合法私钥进行加密。使用公钥进行解密,验证java文件未被窃改过,且开发第三方合法。
classloader:类加载器自己保留的名字空间,以及双亲委托加载策略,保证第三方的java程序不会入侵jvm基础类,不同第三方的java程序互相不可见安全隔离。
实时权限检查:通过java.lang.SecurityManager完成,在jvm启动项中配置 -Djava.security.manager -Djava.security.policy=/home/admin/policy.file,默认是关闭的,所以默认状态下,是没有代码安全检查的
可以编辑策略文件,实现自定义安全。也可以通过System.setSecurityManager(new MySecurityMananger());实现自定义安全。
一个xx.policy文件,在jvm启动后,装载为Policy类,jvm中仅有唯一的一个Policy对象。Policy中定义了,CodeBase,标识class类属于哪个来源,并且定义每个codeBase下,能够拥有哪些Permission列表。通过xx.policy文件,完成这些安全模型后。jvm开始通过classloader加载class类。每加载一个class类,会去Policy中找到对应的codeBase和Permission列表,从而生成一个安全域,包含类的来源(codeBase),拥有的权限(Permission列表)。每个类都会有对应的SecurityDomain标识其安全属性。最后,执行程序时,PrivilegeController.checkAccess会去线程栈上找到每个类以及其对应的安全域,来做方法调用的安全检查。
protected限制:运行时包权限,意味着只能访问同一个加载器加载的同一个包中的类。比如第三方包中定义了java.lang.Virous这样的类,用于访问java.lang.*下面类的protected方法,试图入侵。然而protected不仅是同package可见,还必须是运行时包可见。
分享到:
相关推荐
本文基于给定的文件信息,深入探讨Java安全机制的关键组成部分及其运作原理。 ### Java安全机制的体系结构 Java安全架构的核心在于其设计时就充分考虑了安全因素,而不是后期添加的。这一设计思路主要体现在以下三...
### Java安全机制的研究 #### 一、引言 随着计算机技术特别是互联网技术的快速发展,网络安全问题变得越来越重要。Java作为一种跨平台的语言,由于其强大的功能和广泛的适用性,在金融、在线商务、网络数据库等...
JAAS是Java安全模型的重要组成部分,它允许开发者构建安全的应用程序,满足不同级别的安全需求。 在JAAS中,认证(Authentication)是指验证用户身份的过程,而授权(Authorization)则是确定已认证的用户是否有权...
JAAS允许开发者集成多种标准的安全机制,如Solaris NIS、Windows NT、LDAP和Kerberos等,通过一个通用且可配置的方式。这样,开发者无需修改应用程序的主体代码,就能适应不同的安全需求。JAAS自J2SE 1.3起作为扩展...
Java安全性编程实例主要涵盖的是Java平台上的安全机制和实践,这对于任何希望构建可靠、安全的Java应用程序的开发者来说都是至关...这份资料对于深入理解和应用Java安全机制,提升应用程序的安全性具有很高的参考价值。
本文将深入探讨Java安全机制,主要包括Java安全模型、权限管理、加密技术以及相关的工具使用。 首先,Java安全模型是Java平台的核心组成部分,它提供了一种沙箱环境,限制了代码(特别是来自不可信来源的网络代码)...
总之,《Java安全》中文版为Java开发人员提供了一个全面了解和应用Java安全机制的平台,帮助他们构建更加安全的应用程序。无论是对于初学者还是有经验的开发者,这本书都是一本宝贵的参考资料。
2. Java安全机制的基础 要深入研究Java的安全技术,首先需要了解Java的概念、历史发展及其特性。Java的运行机制和Java虚拟机(JVM)的理解是掌握Java安全技术的关键。JVM作为Java平台的核心,负责解释执行Java字节码...
JavaEE安全机制是Java平台企业版(Java Enterprise Edition)中至关重要的组成部分,它涉及到一系列确保应用程序安全性的技术、模型和策略。本讲主要探讨以下几个核心主题: 1. **Java安全模型**:Java的安全模型...
代码安全性:Java提供了强大的安全机制,如访问控制、类加载验证、沙箱模型等。这些机制确保代码在运行时不会执行恶意操作或访问未经授权的资源。 身份认证和访问控制:Java安全包括用户身份认证和授权机制,以确保...
安全相关的异常如`SecurityException`会在不安全的操作尝试时抛出,这是Java安全机制的重要反馈机制。 5. **签名与证书** 对于可信任的代码,Java支持使用数字签名和证书进行验证。签名能确保代码未被篡改,而...
Java安全机制的弱点 Java作为一种广泛使用的编程语言,在安全方面具有重要的地位。Java2安全体系结构为应用程序提供了强大的安全服务,如安全策略定义与执行、代码鉴别的保护以及授权控制等。然而,这些服务很大...
... ...基于Java的RSA公钥密码算法的实现与探讨是基于Java安全机制和RSA加密算法的实现,Java安全机制是通过字节码验证器、类加载器和安全管理器来实现的,RSA加密算法的实现是基于大数分解的难题。
10. **防止常见攻击**:Java安全机制也包括防止各种攻击,如缓冲区溢出、SQL注入和跨站脚本(XSS)等。Java标准库提供了一些内置的防御措施,如输入验证和使用预编译的SQL语句。 以上知识点仅是Java安全领域的冰山...
本资料"Java2平台安全技术-结构,API设计和实现"聚焦于Java安全机制的深入理解和实践,涵盖了以下几个关键知识点: 1. **Java安全模型**:Java的安全模型基于沙箱机制,确保代码在执行时不会对系统造成破坏。它通过...
《Java安全性编程实例》是一本深入探讨Java安全性的专著,提供了丰富的实例来帮助开发者理解和掌握Java安全机制。该资源包括完整的DOC文档和源码,使学习者能够结合理论与实践,更有效地提升安全编程技能。 首先,...
本书共分为十四章,涵盖了Java Servlet的基础知识、Java Servlet的架构、Servlet生命周期、Servlet配置、会话管理、安全机制、多线程编程、网络编程、JDBC编程、Java Bean开发、Java安全机制等方面的知识。...
Java 锁机制 Synchronized 的优点是可以解决多线程并发访问共享资源时可能出现的一些问题,避免了线程安全问题。 Java 锁机制 Synchronized 的缺点 Java 锁机制 Synchronized 的缺点是可能会出现线程饥饿、死锁、...
"Jaas in Action"这本书,虽然目前还未正式出版,但据称会深入探讨JAAS的相关概念和技术,对于理解和应用Java安全机制具有很高的参考价值。 JAAS的主要目标是解决以下几个核心问题: 1. **身份验证...