1

给定正确的代码,编写安全的 java 程序(除非针对特定的利用)不会离开沙箱或做潜在危险的事情是相对微不足道的。

但是,我的问题源于相反的情况。root 用户对 JVM 中的信息有什么样的访问权限?我是否可以采取任何保护措施来限制或删除 root 用户可以查看/修改的内容?最后,有没有人知道有什么好的资源可以让自己符合这个规范?对谷歌来说,这似乎是一个非常困难的话题......

4

3 回答 3

1

这个问题让我想起有人问“有没有办法在我的配置文件中加密用户名和密码?”。

关键是,如果用户已经对您的服务器具有 root 访问权限,那么您需要担心的事情比他们查询正在运行的 JVM 更重要。

例如,假设您的应用程序有一个 hibernate.cfg.xml,他们可以快速查看您的数据库的凭据。如果他们是恶意的,当他们可以访问服务器时,他们可以做更糟糕的事情。

于 2013-07-02T14:37:52.177 回答
0

对我来说幸运的是,我并不担心有人可以访问我的服务器 - 只是有人可以访问我在他们的机器上执行的代码(允许在那里运行)

如果他们控制系统(例如,他们具有 root 访问权限),他们可以读取您的 JVM 的地址空间,并且(考虑到时间和技能)恢复嵌入在您的代码或数据中的任何信息/秘密。

没有真正有效的解决方案。(对于熟练的黑客来说,混淆之类的东西只是“减速带”。)如果你不能信任具有 root 访问权限的人,你不应该在他们的机器上运行包含机密的代码。

于 2013-07-02T15:10:55.340 回答
0

root 可以做任何事情,但你不应该首先使用 root。大多数人使用 root 能够绑定到低于 1000 的端口,例如用于 http(s) 服务器的 80 或 443。

您可以解决这个问题,而不是以 root 身份运行您的 jvm。

于 2013-07-02T14:55:36.523 回答