java安全编码指南之:ThreadPool的使用

2020-10-20
阅读 5 分钟
1.5k
Executors.newCachedThreadPool,根据需要可以创建新线程的线程池。线程池中曾经创建的线程,在完成某个任务后也许会被用来完成另外一项任务。

java安全编码指南之:Thread API调用规则

2020-10-19
阅读 5 分钟
1.1k
简介java中多线程的开发中少不了使用Thread,我们在使用Thread中提供的API过程中,应该注意些什么规则呢?一起来看一看吧。start一个ThreadThread中有两个方法,一个是start方法,一个是run方法,两个都可以调用,那么两个有什么区别呢?先看一下start方法: {代码...} start()是一个synchronized的方法,通过它会去调用...

使用Spring Boot创建docker image

2020-10-16
阅读 7 分钟
2k
在很久很久以前,我们是怎么创建Spring Boot的docker image呢?最最通用的办法就是将Spring boot的应用程序打包成一个fat jar,然后写一个docker file,将这个fat jar制作成为一个docker image然后运行。

java安全编码指南之:锁的双重检测

2020-10-14
阅读 3 分钟
3.4k
双重检查锁定模式用法通常用于实现执行延迟初始化的单例工厂模式。延迟初始化推迟了成员字段或成员字段引用的对象的构造,直到实际需要才真正的创建。

java安全编码指南之:输入注入injection

2020-10-12
阅读 5 分钟
1.2k
简介注入问题是安全中一个非常常见的问题,今天我们来探讨一下java中的SQL注入和XML注入的防范。SQL注入什么是SQL注入呢?SQL注入的意思是,用户输入了某些参数,最终导致SQL的执行偏离了程序设计者的本意,从而导致越权或者其他类型的错误。也就是说因为用户输入的原因,导致SQL的涵义发送了变化。拿我们最常用的登录的...

java安全编码指南之:lock和同步的正确使用

2020-10-10
阅读 5 分钟
3.3k
在java多线程环境中,lock和同步是我们一定会使用到的功能。那么在java中编写lock和同步相关的代码之后,需要注意哪些问题呢?一起来看看吧。

看动画学算法之:linkedList

2020-10-09
阅读 3 分钟
1.5k
linkedList应该是一种非常非常简单的数据结构了。节点一个一个的连接起来,就成了linkedList。今天我们使用动画的方法一起来看看linkedList是怎么插入和删除的。

java安全编码指南之:方法编写指南

2020-10-08
阅读 3 分钟
1.5k
java程序的逻辑是由一个个的方法组成的,而在编写方法的过程中,我们也需要遵守一定的安全规则,比如方法的参数进行校验,不要在assert中添加业务逻辑,不要使用废弃或者过期的方法,做安全检查的方法一定要设置为private等。

Web Storage API的介绍和使用

2020-10-06
阅读 4 分钟
1.4k
Web Storage为浏览器提供了方便的key value存储,是一种比cookie更加方便简洁的存储方式。也是诸多客户端存储方式中非常常见的一种。

java安全编码指南之:死锁dead lock

2020-10-01
阅读 4 分钟
1.6k
简介java中为了保证共享数据的安全性,我们引入了锁的机制。有了锁就有可能产生死锁。死锁的原因就是多个线程锁住了对方所需要的资源,然后现有的资源又没有释放,从而导致循环等待的情况。通常来说如果不同的线程对加锁和释放锁的顺序不一致的话,就很有可能产生死锁。不同的加锁顺序我们来看一个不同加锁顺序的例子: ...

java安全编码指南之:异常处理

2020-09-29
阅读 6 分钟
2.5k
简介异常是java程序员无法避免的一个话题,我们会有JVM自己的异常也有应用程序的异常,对于不同的异常,我们的处理原则是不是一样的呢?一起来看看吧。异常简介先上个图,看一下常见的几个异常类型。所有的异常都来自于Throwable。Throwable有两个子类,Error和Exception。Error通常表示的是严重错误,这些错误是不建议...

java安全编码指南之:敏感类的拷贝

2020-09-28
阅读 3 分钟
1.4k
简介一般来说class中如果包含了私有的或者敏感的数据的时候是不允许被拷贝的。如果一个class不想被拷贝,我们是不是不提供拷贝的方法就能保证class的安全了呢?一起来看看吧。一个简单的SensitiveObject假如我们有下面的一个SensitiveObject,它的作用就是存储一个password,并且提供了一个修改password的方法: {代码.....

看动画学算法之:排序-基数排序

2020-09-27
阅读 3 分钟
1.2k
之前的文章我们讲了count排序,但是count排序有个限制,因为count数组是有限的,如果数组中的元素范围过大,使用count排序是不现实的,其时间复杂度会膨胀。

java安全编码指南之:可见性和原子性

2020-09-25
阅读 6 分钟
1.3k
java类中会定义很多变量,有类变量也有实例变量,这些变量在访问的过程中,会遇到一些可见性和原子性的问题。这里我们来详细了解一下怎么避免这些问题。

看动画学算法之:排序-count排序

2020-09-23
阅读 3 分钟
1.1k
count排序有一定的限制,因为外部的count数组长度是和原数组的元素范围是一致的,所以count排序一般只适合数组中元素范围比较小的情况。

ECMAScript 6新特性简介

2020-09-22
阅读 5 分钟
2k
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,正式发布与2015年6月。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

java安全编码指南之:输入校验

2020-09-21
阅读 4 分钟
2.5k
我们知道在java中字符是基于Unicode进行编码的。但是在Unicode中,同一个字符可能有不同的表示形式。所以我们需要对字符进行标准化。

java安全编码指南之:堆污染Heap pollution

2020-09-18
阅读 3 分钟
1.4k
简介什么是堆污染呢?堆污染是指当参数化类型变量引用的对象不是该参数化类型的对象时而发生的。我们知道在JDK5中,引入了泛型的概念,我们可以在创建集合类的时候,指定该集合类中应该存储的对象类型。如果在指定类型的集合中,引用了不同的类型,那么这种情况就叫做堆污染。产生堆污染的例子有同学可能会问了,既然JDK...

JDK15真的来了,一起来看看它的新特性

2020-09-16
阅读 6 分钟
1.8k
一年两次的JDK最新版本JDK15在2020年9月15日正式发布了,这次的JDK15给我们带了隐藏类,EdDSA,模式匹配,Records,封闭类和Text Block等诸多新特性。

java安全编码指南之:字符串和编码

2020-09-16
阅读 6 分钟
3.1k
字符串是我们日常编码过程中使用到最多的java类型了。全球各个地区的语言不同,即使使用了Unicode也会因为编码格式的不同采用不同的编码方式,如UTF-8,UTF-16,UTF-32等。

看动画学算法之:排序-快速排序

2020-09-14
阅读 4 分钟
1k
简介快速排序也采用的是分而制之的思想。那么快速排序和归并排序的区别在什么地方呢?归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并。而快速排序虽然也是拆分,但是拆分之后的操作是从数组中选出一个中间节点,然后将数组分成两部分。左边的部分小于中间节点,右边的部分大于中间节点。然...

一文解开java中字符串编码的小秘密

2020-09-12
阅读 4 分钟
1.3k
在本文中你将了解到Unicode和UTF-8,UTF-16,UTF-32的关系,同时你还会了解变种UTF-8,并且探讨一下UTF-8和变种UTF-8在java中的应用。

java安全编码指南之:Number操作

2020-09-10
阅读 7 分钟
2.2k
java中可以被称为Number的有byte,short,int,long,float,double和char,我们在使用这些Nubmer的过程中,需要注意些什么内容呢?一起来看看吧。

java安全编码指南之:表达式规则

2020-09-08
阅读 5 分钟
1.6k
简介在java编写过程中,我们会使用到各种各样的表达式,在使用表达式的过程中,有哪些安全问题需要我们注意的呢?一起来看看吧。注意表达式的返回值我们在使用JDK库的时候,一定要注意认真的读一下JDK中方法的含义和它的返回值。有些返回值可能表示这个操作是否成功,有的返回值可能是方法操作的结果。我们看两个常见的...

java安全编码指南之:声明和初始化

2020-09-06
阅读 3 分钟
1.8k
根据JLS(Java Language Specification)中的定义,class在初始化过程中,需要同时初始化class中定义的静态初始化程序和在该类中声明的静态字段(类变量)的初始化程序。

java安全编码指南之:Mutability可变性

2020-09-03
阅读 4 分钟
1.3k
简介mutable(可变)和immutable(不可变)对象是我们在java程序编写的过程中经常会使用到的。可变类型对象就是说,对象在创建之后,其内部的数据可能会被修改。所以它的安全性没有保证。而不可变类型对象就是说,对象一旦创建之后,其内部的数据就不能够被修改,我们可以完全相信这个对象。虽然mutable对象安全性不够,...

java安全编码指南之:对象构建

2020-09-01
阅读 4 分钟
1.4k
上面的例子中,我们在构造函数中做了一个securityCheck,因为这个securityCheck返回的值是false,所以会抛出SecurityException。

巧用HashMap一行代码统计单词出现次数

2020-08-30
阅读 4 分钟
2.6k
简介JDK是在一直在迭代更新的,很多我们熟悉的类也悄悄的添加了一些新的方法特性。比如我们最常用的HashMap。今天给大家讲一下HashMap在JDK8中添加的两个新方法compute和merge,从而实现一行代码实现单词统计的功能。一起来看看吧。爱在JDK8之前JDK8为我们引入了很多非常非常有用新特性,比如Stream和lambda表达式,可以...

java安全编码指南之:拒绝Denial of Service

2020-08-27
阅读 5 分钟
2.2k
DOS不是那个windows的前身,而是Denial of Service,有做过系统安全方面的小伙伴可能对这个再熟悉不过了,简单点讲,DOS就是服务型响应不过来,从而拒绝了正常的服务请求。

java安全编码指南之:基础篇

2020-08-25
阅读 4 分钟
1k
作为一个程序员,只是写出好用的代码是不够的,我们还需要考虑到程序的安全性。在这个不能跟陌生人说话世界,扶老奶奶过马路都是一件很困难的事情。那么对于程序员来说,尤其是对于开发那种对外可以公开访问的网站的程序员,要承受的压力会大很多。