Java7 中最新的安全漏洞,小程序可以在用户机器上执行不受信任的代码。如需更多信息,请访问http://www.h-online.com/security/features/The-new-Java-0day-examined-1677789.html。
但我的问题是:有人提到这一切都是可能的,因为 Expression 类中引入了 execute() 方法。但它并没有什么特别之处,这在以前的版本中是不可能的。这是来源:
@Override
public void execute() throws Exception {
setValue(invoke());
}
对于自 java1.4 以来存在的 getValue() :
public Object getValue() throws Exception {
if (value == unbound) {
setValue(invoke());
}
return value;
}
getValue() 完成了 execute() 所做的一切。那为什么对execute方法这么大惊小怪?