JAVA安全编码规范

空串或空对象判断

  1. 空字符串的判断一般都用StringUtils.isEmpty()方法,判断集合是否为空用CollectionUtills
  2. 比较对象或字符串,已知对象.equals(传入对象)
  3. 随机数,计算机中没有现实意义上的随机数,在入门时常用为Math.random(int seed)方法,他会返回一个0~1之间的double型数字。然而当seed的数量一致时,每次生成的随机数都是一样的,即
for (int i = 0;i<10;i++){
 System.out.print(Math.random(2));
}
for (int i = 0;i<10;i++){
 System.out.print(Math.random(2));
}

这两个循环生成同样的随机数,故称伪随机数。开发中用java.security.secureRandom类来生成强随机数。 4. 有关金额这种精度要求很高的四则运算需要用BigDecimal类,提供了加减乘除,四舍五入等多种运算,防止基本数据类型造成的精度丢失。

敏感数据加密

  1. 网络协议上,https比http好:具体好在哪。。嗯 多了s,加密协议
  2. 公钥和私钥~
  3. java程序报错时,不能在网页上输出Exception信息,拦截所有异常跳统一界面,防止暴露系统信息。
  4. 线程同步对象构造私有并final,sychonized或lock,防止用实例锁控制静态变量
  5. 信息传输 加salt盐,MD5,非对称加密等。
  6. 用SSLSOCKET (有SSL安全协议)代替SOCKET,
  7. 关键字段可以加上@Transient修饰,编译时跳过该属性

信息安全攻防

  1. sql注入、OS命令写入、java执行命令行
  2. xxs跨域攻击
  3. xml注入
  4. json注入

java线程安全规范

  1. 一般用同步方法、同步代码块来锁定对象
  2. private Lock lock = new ReentrantLock(); 先用lock.lock()方法锁,在finally代码块中调unlock方法进行解锁 ====以上都为即兴发挥,不对之处感谢指出====

转载于:https://my.oschina.net/xlpapapa/blog/3048691

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值