java安全编码指南之:文件和共享目录的安全性
简介java程序是跨平台的,可以运行在windows也可以运行在linux。但是平台不同,平台中的文件权限也是不同的。windows大家经常使用,并且是可视化的权限管理,这里就不多讲了。本文主要讲讲linux下面的文件的权限和安全性问题,并且探讨一下如何在java程序中考虑文件的安全性。linux下
java安全编码指南之:序列化Serialization
简介序列化是java中一个非常常用又会被人忽视的功能,我们将对象写入文件需要序列化,同时,对象如果想要在网络上传输也需要进行序列化。序列化的目的就是保证对象可以正确的传输,那么我们在序列化的过程中需要注意些什么问题呢?一起来看看吧。序列化简介如果一个对象要想实现序列化,只需要实现Serializab
web worker的介绍和使用
简介什么是webworker呢?从名字上就可以看出,webworker就是在web应用程序中使用的worker。这个worker是独立于web主线程的,在后台运行的线程。webworker的优点就是可以将工作交给独立的其他线程去做,这样就不会阻塞主线程。WebWorkers的基本概念和使用webwo
java安全编码指南之:线程安全规则
简介如果我们在多线程中引入了共享变量,那么我们就需要考虑一下多线程下线程安全的问题了。那么我们在编写代码的过程中,需要注意哪些线程安全的问题呢?一起来看看吧。注意线程安全方法的重写大家都做过方法重写,我们知道方法重写是不会检查方法修饰符的,也就是说,我们可以将一个synchronized的方法重写成
Web Storage API的介绍和使用
简介WebStorage为浏览器提供了方便的keyvalue存储,是一种比cookie更加方便简洁的存储方式。也是诸多客户端存储方式中非常常见的一种。一起来看看吧。浏览器的本地存储技术除了最早的使用cookie来进行本地存储之外,现代浏览器使用WebStorageAPI来方便的进行key/value
java安全编码指南之:ThreadPool的使用
简介在java中,除了单个使用Thread之外,我们还会使用到ThreadPool来构建线程池,那么在使用线程池的过程中需要注意哪些事情呢?一起来看看吧。java自带的线程池java提供了一个非常好用的工具类Executors,通过Executors我们可以非常方便的创建出一系列的线程池:Execu
java安全编码指南之:Thread API调用规则
简介java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢?一起来看一看吧。start一个ThreadThread中有两个方法,一个是start方法,一个是run方法,两个都可以调用,那么两个有什么区别呢?先看一下start方法:public
java安全编码指南之:输入注入injection
点击上方的蓝字关注我吧程序那些事简介注入问题是安全中一个非常常见的问题,今天我们来探讨一下java中的SQL注入和XML注入的防范。SQL注入什么是SQL注入呢?SQL注入的意思是,用户输入了某些参数,最终导致SQL的执行偏离了程序设计者的本意,从而导致越权或者其他类型的错误。也就是说因为用户输入的
java安全编码指南之:锁的双重检测
双重检测锁定模式是一种设计模式,我们通过首次检测锁定条件而不是实际获得锁从而减少获取锁的开销。 双重检查锁定模式用法通常用于实现执行延迟初始化的单例工厂模式。延迟初始化推迟了成员字段或成员字段引用的对象的构造,直到实际需要才真正的创建。 但是我们需要非常小心的使用双重检测模式,以避免发送错误。
java安全编码指南之:敏感类的拷贝
一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。 如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢? 一起来看看吧。
java安全编码指南之:lock和同步的正确使用
点击上方的蓝字关注我吧程序那些事简介在java多线程环境中,lock和同步是我们一定会使用到的功能。那么在java中编写lock和同步相关的代码之后,需要注意哪些问题呢?一起来看看吧。使用privatefinalobject来作为lock对象一般来说我们在做多线程共享对象的时候就需要进行同步。jav
ECMAScript 6新特性简介
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,正式发布与2015年6月。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 今天我们将会讲解一下ES6中引入的语法新特性。
java安全编码指南之:死锁dead lock
java中为了保证共享数据的安全性,我们引入了锁的机制。有了锁就有可能产生死锁。 死锁的原因就是多个线程锁住了对方所需要的资源,然后现有的资源又没有释放,从而导致循环等待的情况。 通常来说如果不同的线程对加锁和释放锁的顺序不一致的话,就很有可能产生死锁。
java安全编码指南之:敏感类的拷贝
一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢?一起来看看吧。一个简单的SensitiveObject假如我们有下面的一个SensitiveObject
java安全编码指南之:Number操作
简介 java中可以被称为Number的有byte,short,int,long,float,double和char,我们在使用这些Nubmer的过程中,需要注意些什么内容呢?一起来看看吧。 Number的范围 每种Number类型都有它的范围,我们看下java中Number类型的范围:
java安全编码指南之:表达式规则
在java编写过程中,我们会使用到各种各样的表达式,在使用表达式的过程中,有哪些安全问题需要我们注意的呢?一起来看看吧。 我们在使用JDK库的时候,一定要注意认真的读一下JDK中方法的含义和它的返回值。 有些返回值可能表示这个操作是否成功,有的返回值可能是方法操作的结果。我们看两个常见的例子:
java安全编码指南之:Mutability可变性
mutable(可变)和immutable(不可变)对象是我们在java程序编写的过程中经常会使用到的。 可变类型对象就是说,对象在创建之后,其内部的数据可能会被修改。所以它的安全性没有保证。 而不可变类型对象就是说,对象一旦创建之后,其内部的数据就不能够被修改,我们可以完全相信这个对象。
java安全编码指南之:对象构建
程序员肯定是不缺对象的,因为随时都可以构建一个,对象多了肯定会出现点安全问题,一起来看看在java的对象构建中怎么保证对象的安全性吧。 考虑下面的一个例子:
java安全编码指南之:拒绝Denial of Service
DOS不是那个windows的前身,而是Denial of Service,有做过系统安全方面的小伙伴可能对这个再熟悉不过了,简单点讲,DOS就是服务型响应不过来,从而拒绝了正常的服务请求。 今天本文不是要讲怎么发起一个DOS攻击,而是讲一下怎么在java的代码层面尽量减少DOS的可能性。
java安全编码指南之:基础篇
作为一个程序员,只是写出好用的代码是不够的,我们还需要考虑到程序的安全性。在这个不能跟陌生人说话世界,扶老奶奶过马路都是一件很困难的事情。那么对于程序员来说,尤其是对于开发那种对外可以公开访问的网站的程序员,要承受的压力会大很多。 任何人都可以访问我们的系统,也就意味着如果我们的系统不够健壮,或者有些漏洞,恶意攻击者就会破门而入,将我们辛辛苦苦写的程序蹂躏的体无完肤。