职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 624|回复: 0

谷安天下JAVA安全开发培训

[复制链接]
摩羯 发表于 2012-2-17 17:36 | 显示全部楼层 |阅读模式
IT培训信息
培训费用: -
开课形式: 每月定时开班
培训品牌: 其他IT培训
培训类别: 其他
城市: 深圳
网址: http://gooann.com
电话: 隐藏内容
QQ: 隐藏内容
邮箱: 隐藏内容
了解系统输入数据验证过程中的安全注意事项,以及转换和传输过程中的安全注意事项
军规A0:清理验证跨安全域非信任的数据
军规A1:验证前使字符串归一化
军规A2:路径验证前对其进行标准化处理
军规A3:防范日志注入攻击
军规A4:防范ZIP炸弹攻击
军规A5:使用ASCII码的子集作为文件路径名
军规A6:从格式化串中去除用户输入数据
军规A7:防范命令行注入攻击
军规A8:清理正则表达式中不可信输入数据
军规A9:防范地区敏感的字符串操作错误
军规A10:不要通过byte数组进行字符切割
军规A11:验证前删除非字符码点
军规A12:在不同字符编码格式之间执行无损转换
军规A13:在文件与网络IO操作的两端采用兼容的字符编码格式

了解对象声明与初始化过程中安全陷阱与防范方法
军规B0:阻止类的初始化循环
军规B1:不要重用Java标准库中的公开标识符
军规B2:将增强for循环中的变量声明为final

了解表达式安全注意事项
军规C0:不要忽视方法的返回值
军规C1:不要引用空指针
军规C2:使用具有双参数的Array.equals()比较两个数组的内容
军规C3:比较初始类型值的包装对象时不要使用==和!=操作符
军规C4:确保自动包装产生正确的对象类型
军规C5:不要在同一个表达式中对同一个变量进行多次更改
军规C6:不要调试断言中使用具有副作用的表达式

了解数字类型变量声明和操作中的各种安全问题及其防范方法
军规D0:整数溢出的检查与预防
军规D1:不要对同一数据同时执行位操作和数据运算操作
军规D2:避免除法或求余运算中除数为0
军规D3:使用能覆盖无符号整数范围的整型数据来读取JNI无符号数据
军规D4:float浮点数不能满足精确计算要求
军规D5:不要使用非正常浮点数
军规D6:浮点数运算跨平台一致性
军规D7:不要试图与NaN进行比较
军规D8:检查浮点数输入中的异常情况
军规D9:不要使用浮点数为循环计数器
军规D10:不要使用阿拉伯数字表达的浮点数构造BigDecimal对象
军规D11:不要与浮点数字符串进行比较
军规D12:保证降低转化不会导致数据损失或数据错误
军规D13:转变整数为浮点数时避免损失精度

了解对象声明,继承,传递过程中的各种安全问题及其防范方法
军规E0:限制对有固定逻辑的类和方法进行扩展
军规E1:宣称属性值为private并提供属性访问方法
军规E2:更新父类时保持子类的依赖性
军规E3:不要在新代码中把简单类型和泛化类型混用
军规E4:为易变对象提供Copy方法
军规E5:返回内部易变属性的copy
军规E6:保护性复制易变输入对象和内部对象
军规E7:敏感类应该有防复制功能
军规E8:不要将外层类的私有属性在嵌套类中暴露
军规E9:比较类本身而非类名
军规E10:不要使用public static变量
军规E11:不要让构造函数抛出异常

了解类方法实现过程中的各种安全问题及避免方法
军规F0:验证方法的输入参数
军规F1:不要使用assert验证输入参数
军规F2:不要使用废弃的或过期的类和方法
军规F3:执行安全检查的方法必须要声明为private或final
军规F4:不要增加被覆盖、隐藏方法的可见性
军规F5:保证构造函数不要调用可覆盖方法
军规F6:不要在clone()函数中调用可覆盖方法
军规F7:不要去声明一个隐藏超类或超接口方法的类方法
军规F8:保证相等的对象在运算时保持相等性
军规F9:equals()方法和hashCode()方法应该同时定义
军规F10:实现compareTo()方法时要满足一般约定
军规F11:确保用于比较操作的键

了解异常处理中的安全问题及防范方法
军规G0:不要抑制或忽略异常
军规G1:不要让异常暴露了敏感信息
军规G2:在记录log时防范异常
军规G3:方法失败时恢复先前对象的状态
军规G4:不要在finally语句中任意退出
军规G5:不要让异常从finally语句中溜走
军规G6:不要抛出没有声明的异常
军规G7:不要抛出RuntimeException, Exception, or Throwable
军规G8:不要去捕获NullPointerException和他的任何父异常类
军规G9:不要让非受信代码停止JVM

了解共享变量访问和复合操作原子性相关的安全问题及其防范方法
军规H0:访问初级类型共享变量时保证可见性
军规H1:保证不可变对象共享参考指针的可见性
军规H2:确保对共享变量的复合操作具有原子性
军规H3:不要假定一组相互独立的原子性方法的调用在整体上具有原子性
军规H4:确保链状方法调用的原子性
军规H5:读写64位值时保证原子性

了解输入输出中安全问题及其防范方法
军规I0:对与非信任代码交互的类进行同步要使用私有不变对象锁
军规I1:不要对可重用对象进行同步加锁
军规I2:不要对通过getClass返回的Class对象进行同步加锁
军规I3:不要在高并发访问对象的内在锁上同步
军规I4:如果底层集合可访问就不要对集合视图进行同步加锁
军规I5:非信任代码可以修改对静态属性的同步访问
军规I6:不要对实例对象加锁去保护静态数据
军规I7:以同样的顺序请求和释放锁以避免死锁
军规I8:确保在异常情况下的持有锁能够被释放
军规I9:持有锁时不要执行具有阻塞可能的操作
军规I10:不要使用不正确的双重检查锁定机制
军规I11:当使用的类不遵循既有锁定策略时避免客户端锁定

了解序列化过程中的安全问题及防范方法线程API系列军规
军规J0:不要调用Thread.run()
军规J1:不要调用ThreadGroup中的方法
军规J2:通知所有等待线程而非单个线程
军规J3:总是在循环中调用wait()和await()方法
军规J4:确保执行阻塞操作的线程能被终止
军规J5:不要使用Thread.stop()终止线程

了解线程池安全相关安全问题及其防范方法
军规K0:在请求爆发时用线程池对服务质量进行体面降级
军规K1:不要在有界线程池中执行相互依赖的任务
军规K2:保证提交给线程池的任务是可中断的
军规K3:保证提交给线程池的任务是可中断的
军规K4:当使用线程池时确保ThreadLocal变量被重新初始化

了解Java线程相关的其他安全问题及其防范方法
军规L0:不要用非线程安全的方法覆盖线程安全的方法
军规L1:对象构造期间不要暴露this指针
军规L2:对象初始化时不要使用守护线程
军规L3:不要发布半初始化对象

培训特点:
以企业切实需求为目的
透彻讲解并辅以充足示例代码

培训收益:
具体来说,可以使学员在以下方面有所提高:
可以全方位了解Java开发过程中遇到的各种容易忽视的安全问题,及其防范方法。可以在今后的开发过程中有意识的避免各种安全问题,提高代码质量。

培训对象:
该课程的主要培训对象为:
有一定Java开发经验的研发人员


谷安天下培训顾问:徐金梅
联系手机:13410883634
联系座机:0755-82024056-801
QQ:806050486
邮箱:xujinmei@gooann.com
公司地址:深圳市南山区桃园路金桃园大厦金馨阁19E


您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-28 20:50 , Processed in 0.131582 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表