好程序员教你正确规避java编程中的bug

技巧一:拒绝初始化

  在Java中,开发者常常通过构造函数进行对象初始化。事实上,我们完全可以在无需调用构造函数的情况下,通过其他方式实现对象分配。

(1) 大家可以将所有变量声明为私有。要访问该类外的对象,大家可使用GET与SET方法。

(2) 对每个对象,编写一个新的私有boolean变量并对其进行初始化。

(3)编写一个非构造函数类,其将确保每个对象会在接受调用之前进行初始化。

技巧二:保护类、方法与变量

  在代码当中,类、方法与变量分为私有与公共两类。私有类无法轻松进行访问,公共方法与变量则易于方法,也因此常常成为攻击突破口。因此,请尽可能限制其范围。

技巧三:永远对范围进行预定义

  大多数开发者完全依赖于软件包自身的范围设定,事实上我们应当坚持对代码范围进行预定义。很多类本身并非完全封闭,这意味着攻击者能够对其施以攻击。黑客可以利用单一漏洞插入自己的类,进而从代码中提取敏感信息。JVM在默认情况下即不会封闭,不过允许大家在该软件包内进行类封闭。

技巧四:避免使用内部类

  一般来讲,开发者会在同一软件包内其它类需要时使用内部类。这些内部类通常可供同一软件包内全部类进行访问。

原则五:确保类不可克隆

Java提供一项功能,用于在需要时对自有类进行克隆。然而这项功能往往被黑客所利用,从代码中复制代码实例并窃取必要信息。

  要解决这个问题,大家只需要在代码中的每个类中添加以下代码。

  如果大家希望自己的class具备可克隆性,同时仍然尽可能避免安全问题,那么则可自行定义克隆方法,并将其设置为final。

转载于:https://my.oschina.net/530504/blog/3056617

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值