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

悬赏:20 发布时间:2008-07-02 提问人:sonicluo3 (初级程序员)

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

采纳的答案

2008-07-02 ham (资深程序员)

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

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

提问者对于答案的评价:
这方面的安全问题可以在编程的时候加以避免.

其他回答

记得曾经applet和啥GIF图片有过漏洞的,搜搜应该有。。
hjgundam (高级程序员) 2008-07-02
引用
记得曾经applet和啥GIF图片有过漏洞的,搜搜应该有。。


通常一个applet只能与拥有它的web站点通信。但是由于存在一个安全问题,导致applet可以绕过这种限制。如果用户访问一个恶意攻击者控制的站点,这个站点可以启动一个applet,并且通过合法用户的主机与其他的站点建立连接,并将内容传回给恶意站点。因此这个漏洞可以被用来访问防火墙保护后的内部网络或者其他敏感主机。
aaronqinxin (初级程序员) 2008-07-02
引用

Google's Security Team 发现了来自Sun Java Runtime Environment的严重漏洞,它影响所有Java运行的平台,浏览器甚至是移动设备.

澳大利亚计算机紧急响应中心分析员Robert Lowe在分析漏洞后称,这是一个相当重大的缺陷,它不但可以导致代码执行,甚至非常容易造成利用此漏洞的病毒和蠕虫代码出现.它将感染所有平台影响所有的团体和用户.

引用

Java Servlet 平台包含Cross-site脚本漏洞

http://tech.ccidnet.com/zt/javasec/
漏洞这个问题很难说,系统层面的漏洞,开发过程的漏洞更是让人提心吊胆
maxiaoxia (初级程序员) 2008-07-02