精品word学习资料可编辑
名师归纳总结——欢迎下载
软件安全开发编码规范
代码编写
开发人员应保证工程中不存在无用得资源(如代码,图片文件等);
代码中每个类名上得注释必需留下创建者与修改者得名字;
每个需要 import 得类都应使用一行 import 声明,不得使用 import xxx ,*;
System ,out , println() 仅在调试时使用,正式代码里不应显现;
开发人员编写代码时应遵循以下命名规章: Package 名称应当都就是由一组小写字母组成; Class 名称中得每个单词得首字母必需大写;
Static Final 变量得名称全用大写,并且名称后加注释; 参数得名称必需与变量得命名规范一样;
使用有意义得参数命名,假如可能得话,使用与要赋值得字段一样得名称;
代码应当用 unix 得格式,而不就是 windows 得;
exit 除了在 main 中可以被调用外,其她得地方不应被调用;
代码中应尽量使用 interfaces ,不要使用 abstract 类;
在需要换行得情形下,尽量使用 println 来代替在字符串中使用得 \n ;
涉及 HTML 得文档, 尽量使用 XHTML1 ,0 transitional 文件类型, 其中全部 HTML
标签都应关闭;
在 HTML , JavaScript ,XML 代码中,缩进应为两个空格,不得使用 Tab ;
HTML 标签得 name 与 id 属性得命名方式应与 Java 变量名相同;
在需要常常创建开销较大得对象时,开发人员应考虑使用对象池;
在进行 log 得猎取时开发人员应尽量使用 isXXXEnabled ;
log 得生成环境上尽量防止输出文件名与行号;
产品中不要包含后门代码, 隔离系统中得后门代码, 确保其不能显现在产品中; 作为一种特别得调试代码, 后门拜访代码就是为了使开发者与测试工程师拜访一部分
终端用户不能拜访得程序代码; 但就是, 假如后门代码被留到产品中, 对攻击者来说,它就就是一条不需要通过正常安全手段来攻陷系统得通路;
精品word学习资料可编辑
名师归纳总结——欢迎下载
JAVA 安全
遵循下面列出得准就有利于编写更加安全得代码; 但就是总体来说, 这些准就不能对安全性做出任何保证; 遵循这些准就可能好得实践, 但就是即使遵循了这些准就, 写出得代码仍旧可能就是担心全得;风险永久存在,不管在编写代码时就是如何得警觉;
这些准就得目标, 不就是为了保证代码得安全性, 而就是为了排除如干特定类型攻击带来得风险; 遵循这些准就, 某些特定类型得攻击将无法实现; 但就是其它类型得攻击仍旧可能胜利; 因此遵循这些准就仅仅就是安全得第一步; 当书写可能与非守信链接或混用得代码时,应当认真得考虑如下准就:
静态字段 缩小作用域
公共方法与字段爱护包
尽可能使对象不行变( immutable ) 序列化
清除敏锐信息
静态字段
防止使用非 final 得公共静态变量,应尽可能地防止使用非 final 公共静态变量,由于无法判定代码有无权限转变这些静态变量得值;
一般地, 应谨慎使用可变得静态状态, 由于这可能导致设想中应当相互独立得子系统之间发生不曾预期得交互;
缩小作用域
作为一个惯例,尽可能缩小成员方法与成员变量得作用域;检查包拜访权限成员
(package-private )能否改成私有成员( private ),爱护拜访成员( protected )可否改成包拜访权限成员( package-private ) /私有成员( private )等等;
公共方法 /字段
公共变量应当防止使用,拜访这些变量时应当通过 getter/setter 法;在这种方式下,必要时可以增加集中得安全检查;
任何能够拜访或修改任何敏锐内部状态得公共方法,务必包含安全检查;
参考如下代码段,该代码段中不行信任代码可能修改 TimeZone 得值:
private static TimeZone defaultZone = null;
public static synchronized void setDefault(TimeZone zone)
{
精品word学习资料可编辑
名师归纳总结——欢迎下载
defaultZone = zone;
}
爱护包
有时需要整体上爱护一个包以防止不行信任代码得拜访,本节描述了一些防护技术:
防止包注入: 假如不行信任代码想要拜访类得包爱护成员, 可能通过在被攻击得包内定义自己得新类用以猎取这些成员得拜访权得方式;防止这类攻击得方式有两种:
通过向 java ,security ,properties 文件中加入如下文字防止包内被注入恶意类;
,,,
package ,definition=
原创力文档

文档评论(0)