当构建CS模式的应用程序时,在client側存储敏感信息(比如用户私要信息)可能导致非授权的信息泄漏. 对于Web应用程序来说,最常见的泄漏问题是在client使用cookies存放server端获取的敏感信息.Cookies是由webserver创建的,它具有一个指定的有效时间,保存在client.当client连接上server端时,client使用cookies中存储的信息向server端进行认证,通过后server端返回敏感信息. 在XSS攻击下,Cookies不能保证敏感信息的安全.不…
安全性要求高的应用程序必须避免使用不安全的或者强度弱的加密算法,现代计算机的计算能力使得攻击者通过暴力破解能够攻破强度弱的算法.比如,数据加密标准算法DES是极度不安全的,使用类似EFF(Electronic Frontier Foundaton) Deep Crack的计算机在一天内能够暴力破解由DES加密的消息. [不符合安全要求的代码演示样例] 以下的代码使用强度弱的DES算法对字符串进行加密: SecretKey key = KeyGenerator.getInstance("DES&q…
明文保存password的程序在非常多方面easy造成password的泄漏.尽管用户输入的password一般时明文形式.可是应用程序必须保证password不是以明文形式存储的. 限制password泄漏危急的一个有效的方法是使用散列函数.它使得程序中能够间接的对用户输入的password和原来的password进行比較,而不须要保存明文或者对password进行解密后比較.这种方法使password泄漏的风险降到最低,同一时候没有引入其它缺点. [加密散列函数] 散列函数产生的值称为哈希值…
java.lang.Object.equals()函数默认情况下是不能用来比較组合对象的,比如密钥值.非常多Key类没有覆写equals()函数,因此,组合对象的比較必须单独比較里面的各个类型以保证正确性. [不符合安全要求的代码演示样例] 以下的代码使用equals()函数比較两个key值,key值即使具有同样的取值也可能会返回不相等,导致结果出错. private static boolean keysEqual(Key key1, Key key2) { if (key1.equals(k…
当竞争对手的应用程序与我们的应用程序执行在同一个系统上时,我们的应用程序在内存中的敏感数据是非常easy被竞争对手获取的.假设我们的应用程序符合以下几种情况之中的一个,那么竞争对手能够获取到我们应用的敏感数据: 1)应用程序使用对象来存储敏感数据,并且在对象使用完后.对象的内容没有被清除或者对象没有被垃圾回收: 2)在操作系统执行内存管理任务或者执行休眠等功能时.应用程序的内存分页将被置换到磁盘上保存: 3)持有存储了操作系统缓存或者内存中敏感数据的buffer对象(比如BufferedRead…
首先还是打开熟悉的idea 在marketplace 输入 alibaba 我这是已经安装过了 下载完成之后重启idea生效 如果需要那就手动的扫描 当然已经自动的扫描了 如果你的代码不符合阿里的标准就会有 波浪线 当然你也可以手动的扫描…
本文翻译自https://www.securecoding.cert.org/confluence/display/java/DRD00-J.+Do+not+store+sensitive+information+on+external+storage+%28SD+card%29+unless+encrypted+first,有增删改. Android提供了几种保存持久化应用数据的选择,当中之中的一个就是外部存储(/sdcard, /mnt/sdcard).外部存储包含设备内部的微型或标准大小的…
015 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 09 Unicode编码 本文知识点:Unicode编码以及字符如何表示? ASCII码是美国提出的标准信息交换码,主要用于现代英语和西欧语言.不支持中文和其他一些语言. Unicode编码 为支持中文和其他一些语言,所以出现了Unicode编码.Unicode编码又称为:统一码.万国码.是计算机科学领域的一项业界标准.Unicode编码的目标就是能够支持世界上所有的字符集.也就是说:几乎所有的字符集包含…
013 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 07 基本数据类型变量的存储 变量和它的值如何在内存中进行存储的? 前面学习过:Java中的数据类型分为基本数据类型和引用数据类型.因此,Java中的变量可以有基本类型的变量,也可以有引用类型的变量. 引用类型的变量可以是数组.可以是类或其他.如果是用类定义变量的话,类定义的变量叫做对象. 除了按照数据类型进行变量的分类以外,还可以按照作用范围进行变量的分类. 按照作用范围对变量进行分类 按照变量的作用范…
017 01 Android 零基础入门 01 Java基础语法 02 Java常量与变量 11 变量综合案例 本文知识点:变量 相同类型的变量可以一次同时定义多个 例:可以一行代码同时定义2个变量x和y int x, y; 如果没有给x赋值,就输出它们的结果会发生什么? 报错:部变量没有被初始化! y也一样的问题 同时定义多个变量并进行初始化的写法 关于换行的问题 我们平时写的是换行的: System.out.println(""); 不换行只需要把println换成print即可…