sonicluo3 2008-07-02 00:21
浏览 186
已采纳

想问一下Sun 的Java 虚拟机是否存在安全性的问题呢?请举例说明

如题,Java平台一直被认为是安全性很好的平台,但无论什么平台都应该会有漏洞的.个人对此比较感兴趣,希望指教一二.

  • 写回答

4条回答 默认 最新

  • iteye_17163 2008-07-02 01:00
    关注

    [b]字符串的安全性.[/b]
    如果密码是存储在 Java String 对象中的,则直到对它进行垃圾收集或进程终止之前,密码会一直驻留在内存中。即使进行了垃圾收集,它仍会存在于空闲内存堆中,直到重用该内存空间为止。密码 String 在内存中驻留得越久,遭到窃听的危险性就越大。更糟的是,如果实际内存减少,则操作系统会将这个密码 String 换页调度到磁盘的交换空间,因此容易遭受磁盘块窃听攻击。
    您应该将密码存储在 char 数组中,并在使用后对其置零。(String 是不可变的,所以无法对其置零。)

    [b]智能序列化。[/b]
    当为存储器或传输任何私有字段而序列化对象时,缺省情况下,这些对象都呈现在流中。因此,敏感数据很容易被窃听。可以使用 transient 关键字来标记属性,这样在流中将忽略该属性。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?