java 安全方面的考虑-简单
来源:互联网 发布:知行理工怎么登不上 编辑:程序博客网 时间:2024/05/21 09:48
参考 深入理解JVM
1 双亲委派模型
(1)防止不可靠的代码用自己的版本替代可信任的类。
(2)运行时包的概念:同一个类装载的、属于同一个包的、多个类型的集合。
加载java.lang.Virus这个非法的类,不能访问java.lang包中的API。
2 class文件验证器
第一趟在类被装载的时候进行,检查内部结构,保证可被编译。
第二趟在连接过程中进行,语义检查,方法描述符符合特定字符串。
第三趟在连接过程中进行,字节码验证
第四趟在解析过程中进行,符号引用的验证
CLassLoader类中loadClass的具体实现
(1)查看请求的类装载器是否已经被装载进这个类装载器的命名空间。如果确实如此,返回这个已经装载的Class实例。
(2)否则委派双亲类装载器,如果双亲返回,则返回这个Class实例。
(3)否则,调用findClass(),findClass会试图寻找或生成一个字节数组。如果成功,findClass()把字节数组传递给defineClass,后者试着导入这个类型,返回一个Class实例。如果findClass返回了一个Class实例,loadClass()把这个实例返回。
(4)否则,findClass抛出某些异常,loadClass返回同样异常。
forName 和loadClass的区别?
loadClass保证被装载的类型是被装载到用户自定义的类装载器的命名空间里,而forName确认所需的类型被装载到当前命名空间中,就是forName方法调用所属的定义类装载器的命名空间。
3 内置的安全特性
自动GC
数组边界检查
空引用检查
类型安全的引用转换
结构化的内存访问(无指针)
4 安全管理器
保护虚拟机外的资源不被运行的恶意代码破坏
5 代码签名和认证
6 策略
7 保护域
8 访问控制器
- java 安全方面的考虑-简单
- 客户考虑的方面
- CakePHP: 安全性方面的考虑
- CakePHP: 性能方面的考虑
- 考虑SQL Server安全时所应注意的几个方面
- java 安全方面
- java循环简单考虑问题的角度
- 程序员转型应该考虑的几个方面
- WEB安全性测试考虑的几个方面
- 系统开发应该考虑的几个方面
- 前端优化,需要考虑的几个方面
- .NET和JAVA 在安全方面的比较
- Linux安全方面的设置
- 信息安全方面的国际会议
- 关于安全方面的架构
- java 设计类时考虑多线程安全
- VB制作QQ登录框【里面的图是大概的登录判断,不知道这样写判断好不好,效率安全等方面考虑~~】
- asp.net开发数据库应用的性能方面的考虑
- 宽字符处理函数函数与普通函数对照表
- python闭包来确定控件的位置
- CSS 相对定位
- Android自动测试之monkeyrunner工具
- ros3.3
- java 安全方面的考虑-简单
- CSS 绝对定位
- 如何学好 C 语言
- 弹出DIV定位方法及注意
- IE不能访问FTP之ftp的port和pasv模式
- Android 异步和多线程
- Unix Shell
- 行列指针
- 如何检查C++中的内存泄漏 (原文地址:http://www.cppblog.com/Lyt/archive/2009/03/22/77517.html)