很多人一听到Java就摇头,说“不安全”“容易中病毒”,特别是家里老人用电脑时,弹出个Java更新提示,点一下就跟打开了潘多拉盒子似的。那Java到底安不安全?其实这事儿得分清楚,别把锅都甩给Java本身。
Java本身是安全的,问题出在用法上
Java语言设计时就考虑了安全性,比如它运行在虚拟机(JVM)里,和系统底层隔了一层。你写的代码再怎么折腾,也很难直接删系统文件或者改注册表。这种沙箱机制本来就是为了防恶意操作。
真正出事的,往往是老版本的Java运行环境(JRE),尤其是6u45之前的那些版本。这些旧版本存在漏洞,黑客写个恶意网页,你一打开,自动下载木马,根本不用你点确认。这种情况在2013年前后特别多,所以才有了“Java不安全”的名声。
现在的情况好多了
从Java 7后期开始,Oracle加强了安全策略,默认禁用高风险的Applet,浏览器也不再默认支持Java插件。你现在装最新版Java,基本不会再因为浏览网页就被黑。
如果你只是用来跑本地程序,比如开发工具IntelliJ IDEA、Eclipse,或者用Minecraft这类游戏,那完全没问题。这些软件依赖Java运行,但它们本身是可信的,运行环境也是隔离的。
怎么用才安全?
关键不是要不要Java,而是怎么管好它。比如公司内网系统要用Java Web Start启动,那就装一个受控的版本,定期更新。个人用户如果压根不用相关软件,完全可以不装JRE。
要是必须用,记得关掉不必要的权限。比如在Java控制台里,把安全级别调到“高”,这样未经签名的小程序一律拦住。
java -version
这行命令能看看你装的是哪个版本。如果是1.8.0_291以后的,或者Java 11、17这些长期支持版,基本可以放心。老古董版本赶紧卸了。
别让Java背锅
有时候电脑变慢、弹广告,用户怪Java,其实查下来是某个国产软件捆绑安装的“加速器”在作怪。Java成了替罪羊。真正的风险往往来自用户自己点了不明链接,或者下了来路不明的.exe文件,然后说是“Java程序”。
打个比方,刀能切菜也能伤人,不能因为有人划伤手就说“刀不安全”。Java也一样,它是个工具,关键看你怎么用。