首页 理论教育计算机网络与信息安全编程规范

计算机网络与信息安全编程规范

【摘要】:下面简单介绍Java和Visual Basic编程规范。(一)Java语言编程规范下面是Java语言编程时应该遵守的规范,这些规范不一定要绝对遵守,但一定要让程序有良好的可读性。不要在安全性上依赖包的范围。如果不是定义自己的复制方法,至少可以通过增加如下内容防止复制方法别恶意地重载:(二)Visual Basic编程规范1.Visual Basic事件过程的结构2.编程规范编程时,语句的书写必须按照VB指定的语法格式,还应注意程序结构的完整和清晰。

用高级程序设计语言开发程序时,应该养成良好的编程习惯,才能使源代码结构清晰,易于阅读,为今后系统维护和管理提高重要保证。下面简单介绍Java和Visual Basic编程规范。

(一)Java语言编程规范

下面是Java语言编程时应该遵守的规范,这些规范不一定要绝对遵守,但一定要让程序有良好的可读性。

(1)使用Java语言编程时,不要使用公共域或变量,把它们声明为私有域或私有变量,并提供访问函数,以限制对它们的访问,除非有很好的理由,否则方法都设为私有的。非私有的方法可能接收到受污染的数据,除非已经用其他方式进行了保护。

(2)避免使用静态域变量。这样的变量附着在类(而非类的实例)上,而类可以被其他类所定位。其结果就是静态域变量可以被其他类找到,因此很难保证它们的安全。

(3)永远不要把可变对象返回给潜在有恶意的代码(因为代码可能会改变它)。数组是可变的(即使数组的内容不可变),所以不要返回一个含有敏感数据的内部数组的引用。

(4)永远不要直接保存用户给定的可变对象(包括对象的数组)。否则,用户可以把对象交给安全代码,让安全代码“检查”对象,并在安全代码试图使用数据时改变数据,应该在内部存储数组前复制它们,而且要小心。

(5)不要在安全性上依赖包的范围。若干类,如java.lang,缺省是关闭的,而且某些Java虚拟机(JVM)会关闭其他包。否则,Java类是没有关闭的。因此,攻击者可以向包中引入一个新类,并用此新类来访问你以为保护了的信息。

(6)不要使用内部类。在内部类转换为字节代码时,内部类会转换为可以访问包中任意类的类。更糟的是,被封装类的私有域会悄悄地变成非私有的,允许内部类访问。

(7)最小化特权。如果可能,完全不要请求任何特殊的许可。McGraw更进一步地推荐不要标记任何代码;笔者认为可以标记代码(这样用户可以决定“只有列表上的发送者可以运行标记过的代码”),但在编写程序时要使程序不需要沙箱设置之外的权限。如果一定要有更大的权限,审读代码就会特别困难。

如果一定要标记代码,应该把它们都放在一个档案文件里。此规则的目的是防止攻击者使用混合匹配攻击,构建新applet或库把某些标记类与有恶意的类连接在一起,或者把根本意识不到会被一起使用的标记类连接在一起。通过把一组类标记在一起,就可以使这种攻击更困难。现有的代码标记系统在防止混合匹配攻击上做得还不够,所以这一规则还不能完全防止此类攻击。但使用单个档案没什么坏处。

(8)应该使类不可被复制。Java的类复制机制允许攻击者不运行构造函数就实例化某个类。要使类不可被复制,只需要在每个类里定义如下方法:

如果确实需要使类可被复制,那么可以采用几个保护措施来防止攻击者重新定义复制方法。如果是定义自己的复制方法,只需要使它是确定的。如果不是定义自己的复制方法,至少可以通过增加如下内容防止复制方法别恶意地重载:

(二)Visual Basic编程规范

1.Visual Basic事件过程的结构

2.编程规范

编程时,语句的书写必须按照VB指定的语法格式,还应注意程序结构的完整和清晰。(www.chuimin.cn)

(1)缩排源代码

对程序的控制结构进行缩排处理,使程序层次结构清晰。例如:

(2)代码延续字符

代码延续字符用于对特别长的VB语句进行分割。通常,如果一条VB语句超过80个字符,可应用代码延续字符将之分割成两行或更多行。代码延续字符是置于代码行末尾的空格+下划线字符(_)。例如:

一条赋值语句分4行来写。

(3)将多条语句写在一行上

多条语句可写在一行上,它们之间用“:”作为分隔,例如:

Forml.width=300:temp=forml.width:forml.caption=“你好!”

(4)源码注释

对源代码进行注释,以后无论自己还是别人都可以更容易地理解程序流程,方便修改代码。

格式1:注释文字

格式2:Rem注释文字

说明:注释可以和语句在同一行并写在语句的后面,也可占据一整行。

例如:

rem下面的语句是赋值语句和注释的示例。

Forml.width=300将窗体的宽度设置为300