Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。Ja...
分类:
编程语言 时间:
2014-07-22 23:11:13
阅读次数:
492
当构建CS模式的应用程序时,在客户端侧存储敏感信息(例如用户私要信息)可能导致非授权的信息泄漏。
对于Web应用程序来说,最常见的泄漏问题是在客户端使用cookies存放服务器端获取的敏感信息。Cookies是由web服务器创建的,它具有一个指定的有效时间,保存在客户端。当客户端连接上服务器端时,客户端使用cookies中存储的信息向服务器端进行认证,通过后服务器端返回敏感信息。...
分类:
编程语言 时间:
2014-06-22 12:23:00
阅读次数:
308
明文保存密码的程序在很多方面容易造成密码的泄漏。虽然用户输入的密码一般时明文形式,但是应用程序必须保证密码不是以明文形式存储的。
限制密码泄漏危险的一个有效的方法是使用散列函数,它使得程序中可以间接的对用户输入的密码和原来的密码进行比较,而不需要保存明文或者对密码进行解密后比较。这个方法使密码泄漏的风险降到最低,同时没有引入其他缺点。
[加密散列函数]
散列函数产...
分类:
编程语言 时间:
2014-06-22 12:13:45
阅读次数:
251
java.lang.Object.equals()函数默认情况下是不能用来比较组合对象的,例如密钥值。很多Key类没有覆写equals()函数,因此,组合对象的比较必须单独比较里面的各个类型以保证正确性。
[不符合安全要求的代码示例]
下面的代码使用equals()函数比较两个key值,key值即使具有相同的取值也可能会返回不相等,导致结果出错。
private static b...
分类:
编程语言 时间:
2014-06-22 08:03:23
阅读次数:
275
安全性要求高的应用程序必须避免使用不安全的或者强度弱的加密算法,现代计算机的计算能力使得攻击者通过暴力破解可以攻破强度弱的算法。例如,数据加密标准算法DES是极度不安全的,使用类似EFF(Electronic Frontier Foundaton) Deep Crack的计算机在一天内可以暴力破解由DES加密的消息。
[不符合安全要求的代码示例]
下面的代码使用强度弱的DES...
分类:
编程语言 时间:
2014-06-22 07:08:44
阅读次数:
239
当竞争对手的应用程序与我们的应用程序运行在同一个系统上时,我们的应用程序在内存中的敏感数据是很容易被竞争对手获取的。如果我们的应用程序符合下面几种情况之一,那么竞争对手可以获取到我们应用的敏感数据:
1)应用程序使用对象来存储敏感数据,而且在对象使用完后,对象的内容没有被清除或者对象没有被垃圾回收;
2)在操作系统运行内存管理任务或者执行休眠等功能时,应用程序的内存分页将被置换到磁盘上保存;...
分类:
编程语言 时间:
2014-06-16 19:18:30
阅读次数:
267
这是一个比Josh Bloch的Effective
Java规则更精妙的10条Java编码实践的列表。和Josh
Bloch的列表容易学习并且关注日常情况相比,这个列表将包含涉及API/SPI设计中不常见的情况,可能有很大影响。我在编写和维护jOOQ(Java中内部DSL建模的SQL)时遇到过这些。...
分类:
编程语言 时间:
2014-05-05 11:38:28
阅读次数:
402
右括号”)
”与其后面的关键字之间,关键字与其后面的左括号”(”或”{”之间,以及”}”与”{”之间,要以一个空格隔开;除”.
”外,所有二元操作符的前、后要加空格;在逗号后边加一个空格。说明:一个紧跟着括号的关键词应该被空格分开;空白应该位于参数列表中逗号的后面;所有的二元运算符,除了“.”,应该...
分类:
编程语言 时间:
2014-04-28 09:14:38
阅读次数:
796