如题,Java平台一直被认为是安全性很好的平台,但无论什么平台都应该会有漏洞的.个人对此比较感兴趣,希望指教一二.
4条回答 默认 最新
iteye_17163 2008-07-02 01:00关注[b]字符串的安全性.[/b]
如果密码是存储在 Java String 对象中的,则直到对它进行垃圾收集或进程终止之前,密码会一直驻留在内存中。即使进行了垃圾收集,它仍会存在于空闲内存堆中,直到重用该内存空间为止。密码 String 在内存中驻留得越久,遭到窃听的危险性就越大。更糟的是,如果实际内存减少,则操作系统会将这个密码 String 换页调度到磁盘的交换空间,因此容易遭受磁盘块窃听攻击。
您应该将密码存储在 char 数组中,并在使用后对其置零。(String 是不可变的,所以无法对其置零。)[b]智能序列化。[/b]
当为存储器或传输任何私有字段而序列化对象时,缺省情况下,这些对象都呈现在流中。因此,敏感数据很容易被窃听。可以使用 transient 关键字来标记属性,这样在流中将忽略该属性。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报