java 安全性

java的安全性

前天去一个公司面试,技术官问了我一个问题,java的安全性的特点主要体现在什么地方。我竟然哑然。

后来仔细一想,再查了一点资料,整理如下:

java的安全在语言级上提供了很好的安全措施,主要是:

1、严格遵循面向对象的规范。这样封装了数据细节,只提供接口给用户。增加了数据级的安全性。

2、无指针运算。java中的操作,除了基本类型都是引用的操作。引用是不能进行增减运算,不能被直接赋予内存地址的,从而增加了内存级的安全性。

3、数组边界检查。这样就不会出现C/C++中的缓存溢出等安全漏洞。

4、强制类型转换。非同类型的对象之间不能进行转换,否则会抛出ClassCastException

5、语言对线程安全的支持。java从语言级支持线程。从而从语法和语言本身做了很多对线程的控制和支持。

此外,java的安全还通过编译器、检验器、类装载器、建立安全策略等方式保证了java程序的安全性

时间: 2025-01-07 13:17:04

java 安全性的相关文章

java安全性编程

java的安全性编程其实也是略带了点防御性编程的意思在里面,其实java作为一门编程语言,相对C,c++,本身算比较安全的,跟C,C++这种偏底层的编程语言比,java少了显示的指针调用,少了程序上的内存释放,回收,这些统统都交给了JVM,而且在内存分配的也做了一些检测,诸如越界检测ArrayIndexOutOf,还有空指针保存NullPointerException,这一切的不同使得java的使用也变得相对简单许多,在语言自身上避免了很多不安全的可能出现.但是尽管java在编程上是安全的,但是

java安全性的一种简单思路

关于接口安全性的考虑.这客户端在调用接口时,将acId授权码以加密的方式(可逆加密方式)传递过来, 服务端这边接收后进行解密,然后在服务器端这边的授权名单中进行匹配,判断该授权码是否被授权,从而判断第三方调用的安全. acId示例: 客户端方 1.第三方接口的授权码为:Sj107181kyy(11位) 2.客户端将授权码进行32位MD5加密:Sj107181kyy->9fa2f84f5e3726088febd6b07f050059 3.加上时间格式为"yyyy-MM-dd"的当前

JAVA 安全性转码代码(包括sql注入,跨站脚本)

例子: column_type = SecurityString.getHtml(column_type);column_type = SecurityString.getValidSQLPara(column_type); 实现: 1 public class SecurityString { 2 3 public static String getHtml(String str) { 4 //过滤敏感字符 5 str = filter(str); 6 if (str != null) { 7

Java底层四个核心技术

今天早起失败,加上忙碌的一天加班工作,没按计划总结Java相关的技术,刚看到下面的文章总结的不错,转载一下. Java有哪四个核心技术?首先,我们要了解一下java核心技术的重要性,它可以帮助我们举一反三.触类旁通,有助于提升我们对整个Java平台的理解力. 第一:Java虚拟机 Java虚拟机的主要任务是装在class文件并且执行其中的字节码.Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件.Java API中只有程序执行时需要的那些类才会被装载.字节码由执行引擎来执行

java安全沙箱(四)之安全管理器及Java API

java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 ??安全管理器及Java API?? 本篇博客主要介绍"类安全管理器及Java API"的基本原理,如需了解其它几类安全机制可以通过上面的博客链接进入查看. 简介 java安全沙箱的前三类保证了jvm所运行程序的完整性,使得jvm不会因为运行有漏洞或恶意的代码而导致出现不可预期的状态.而第四类沙箱模型是

Java Web 学习笔记

1.  Java优势:支持多种操作系统平台,优秀的多线程设计,面向对象设计,异常处理机制,有着健壮的安全设计,其体系结构中立: 注释:体系结构中立:编译器生成一个体系结构中立的目标文件格式,这是一种编译过的代码,只要有Java运行时系统,就可以在许多处理器上运行.Java编译器通过生成与特定的计算机体系结构无关的字节码指令(.class文件)来实现这一特性.精心设计的字节码不仅可以很容易地在任何机器上解释执行,而且还可以迅速地翻译成本地机器的代码.字节码实现了结构中立,与计算机结构无关. 2. 

Java中的核心技术思想

Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少.对核心概念和思想的掌握可以帮助我们举一反三.触类旁通,有助于提升我们对整个Java平台的理解力.这里所介绍的是Java技术平台的几个核心概念,其中所蕴含的思想有助于我们更深刻的理解Java技术.Java虚拟机Java虚拟机的主要任务是装在class文件并且执行其中的字节码.Java虚拟机包含一个类装载器,它可以从程序和API中装载class文件.Java API中只有程序执

Java大数据人才应用领域广,就业薪酬高

互联网创造了大数据应用的规模化环境,大数据应用成功的案例大都是在互联网上发生的, 互联网业务提供了数据,互联网企业开发了处理软件,互联网企业的创新带来了大数据应用 的活跃,没有互联网便没有今天的大数据产业.没有互联网.云计算.物联网.移动终端与 人工智能组合的环境大数据也没那么重要.大数据的价值并非与生俱来而是应用创新之结果 ,价值是由技术组合创新涌现出来的.离开环境的支持大数据毫无价值,就像离开了身体的 手不再有手的功能一样. 随着2017年大数据各种应用的发展,大数据的价值得以充分的发挥,大

java 基本理论知识点

http://www.cnblogs.com/hellokitty1/p/4491808.html 1.main方法是怎么写的 public static void main(String [] args){}//最习惯的 public static void main(String  args[]){} static public void main (String [] args){} 2.变量的命名规则是怎么样的? 类名的定义:必须以大写开始,采用驼峰命名 方法名.属性名的定义:以小写开始