【发布时间】:2011-03-23 01:55:13
【问题描述】:
我了解常见的 Web 漏洞,例如 SQL 注入、脚本注入、窃取 cookie 等。但是,我对桌面 Java 应用程序的安全问题了解不多。有哪些好的资源可以帮助您了解更多信息?
具体来说,我说的是在 PC 或 Mac 桌面上运行的 Java 应用程序(不是小程序或服务器)。
我可以想象 Java 应用程序的一些问题是更改注册表设置、安装 rootkit、击键记录、弄乱文件系统等。除了最后一个,我不知道该怎么做或者如果它甚至可能的话,所以我不知道它是多么容易实施,因此有潜在的危险。此外,如果我了解它是如何完成的,我就能理解如果有什么东西可以防止它发生的话。
我觉得文件系统可能会造成很多损害,包括删除文件、窃取数据、更改存储设置文件的程序的设置等。我听说 Java 有沙盒模式,但我没有确定在沙盒模式下运行程序是如何工作的,或者程序如何知道它处于沙盒模式。
有哪些很好的学习资源?
【问题讨论】:
-
也许,你可以开始了解Java的SecurityManager:javaworld.com/javaworld/jw-11-1997/jw-11-hood.html
-
Java 的安全准则:oracle.com/technetwork/java/seccodeguide-139067.html
The Java platform has its own unique set of security challenges. One of its main design considerations is to provide a secure environment for executing mobile code. While the Java security architecture can protect users and systems from hostile programs downloaded over a network, it cannot defend against implementation bugs that occur in trusted code. Such bugs can inadvertently open the very holes that the security architecture was designed to contain... -
在这篇文章中,它说:infoq.com/news/2010/10/java-exploit-uptick
...In particular, three long-known issues with the Oracle JVM around Calendar deserialization, long file URLs, and RMI connections represent an outsized portion of attacks....和Java developers often assume that their applications are immune to security holes because of the sandbox that the JVM supplies. But under the bytecode, the JVM implementation itself still has direct access to memory and is implemented in an un-sandboxed language like C.