6

我希望有人可以帮助我解决以下问题:

我对 java 堆栈自省的理解(这里可能有点过于简单化了)是一个进程生成一个堆栈帧,然后将其添加到堆栈中。现在,当进程需要进行系统调用时,堆栈自省算法检查是否允许主体(即尝试访问资源的进程)使用特定资源,然后相应地注释帧(授予或禁止访问)。

我的问题是:

  1. 以上是正确的还是我错过了什么?
  2. JVM 如何决定是授予还是限制访问?用户是否参与了这个决定?
  3. 这项研究中,有一个示例(图 2),其中一个框架继承/被告知前一个框架的“信念集”!在这个例子中,是什么阻止了恶意代码的执行(即访问不应访问的资源)?
4

1 回答 1

3

JVM 如何决定是授予还是限制访问?用户是否参与了这个决定?

它委托给当前安装的SecurityManager.

以上是正确的还是我错过了什么?

可以在堆栈上SecurityManager进行自省,也可以使用其他一些标准。与在浏览器中运行的SecurityManager小程序相关联的确实是自省的,因此这至少在一个域中是正确的。

在这项研究中,有一个示例(图 2),其中一个框架继承/被告知前一个框架的“信念集”!在这个例子中,是什么阻止了恶意代码的执行(即访问不应访问的资源)?

真的没什么。Java 安全性一团糟,许多人建议在浏览器中关闭 Java,因为如今很少有合法网站使用它。

2010 年的“Sun Java 迄今为止最易受攻击的插件”

于 2012-03-11T04:05:41.970 回答