Java代码安全性的解析
来源:互联网 发布:51单片机数码管时钟 编辑:程序博客网 时间:2024/05/22 10:38
java的设计者已经编写了颇有影响力的白皮书,内容摘要可以用11个关键术语进行组织:
简单性、可移植性、面向对象、解释型、网络技能、高性能、健壮性、多线程、安全性、动态性、体系结构中立,这11个术语,也可以说是官网给出的java语言带有的特性。
下面详细解释一下面试中常问的有关安全性的问题。
通常安全性问题,很广很大,不能深入研究,所以大多数安全性的发问点都是和代码安全性有关系,相关的术语有编译器、解释器、类加载器(class loader)、字节码校验器。大概的过程如下:
首先是由编译器把.java文件编译成为.class字节码文件、然后由类加载器负责把.class文件加载到Java虚拟机中,再由字节码校验器进行校验,校验通过后由Java解释器负责把该
类文件解释成为机器码进行执行。
在类加载器加载.class文件到java虚拟机的过程中,类加载器通过区分本机文件系统的类和网络系统导入的类增加安全性(不允许网络上的应用程序修改本地的数据),本机的类先被加载,一旦所有的类加载完,执行文件的内存划分就固定了,然后字节码校验器开始校验.class字节码文件,字节码校验器不检查那些可信任的编译器所产生的类文件。通过之后,java解释器材负责把类文件解释成为机器码进行执行。
我不想死记硬背,所以这里直接就粘贴字节码校验器主要执行的检查内容是什么,如果你记忆力好,那你就记,这也是一种能力:
加载的类符合JVM规范的类文件格式,没有违反访问限制,代码没有造成堆栈的上溢或者下溢,所有操作代码的参数类型都是正确的,没有非法的数据类型转换发生,检查该类文件的代码中是否存在着某些非法操作,字节码校验器在java源程序中,会执行try-catch-finally语句序列并捕捉和响应Java的程序错误。
贴一个题目把,关于Java代码安全性的叙述,哪些是正确的?
A. 字节码校验器加载查询执行需要的所有类
B. 运行时解释器执行代码
C. 在运行时,字节码被加载,验证后在解释器里面执行
D. 类加载器通过分离本机文件系统的类和从网络导入的类增加安全性
- Java代码安全性的解析
- java代码的安全性
- java代码的安全性
- java代码安全性
- 代码安全性的基本原则
- java代码安全性检查机制
- java的安全性
- java的安全性
- php代码安全性的建议
- Java学习疑点(4)--线程的六个状态以及其安全性问题的个例解析
- java的基本类型和i++线程安全性的深入解析
- java的基本类型和i++线程安全性的深入解析
- 【Java多线程】线程的安全性
- JavaScript(XMLHttpRequest)跨域访问解决办法及安全性问题(附java写的proxy代码)
- Java PBKDF2 密码哈希代码 安全性较高的加密
- 关于PHP代码安全性问题的建议
- 如何提高Android代码的安全性
- 如何提高Android代码的安全性
- 文章标题
- 测试
- 【CSS】对于超出div部分的处理
- C/C++ const类型用法总结
- lamp本机多站点配置
- Java代码安全性的解析
- rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync【文件从本地上传到linux服务器有什么更好的工具?】
- 第一天写博客
- 常用图像数据库
- 给没有毕业的同学
- PHP mysql_real_escape_string的使用陷阱
- 第八周【项目2-Time类中的运算符重载】
- c++统计连续单词出现次数
- Lazyr.js – 延迟加载图片(Lazy Loading)