java - 对私有(private)类成员的引用怎么可能是危险的

标签 java security oop member

我目前正在阅读 CERT Secure Coding Standard for Java .

我正在为此苦苦挣扎rule 。此规则的严重性很高,这意味着违反此规则可能会导致权限升级或代码执行。

我真的不明白违反这条规则怎么会导致如此致命的事情。有人可以举例说明对违反此规则的代码进行攻击吗?

最佳答案

您可能在类的构造函数中建立了一个不变量,例如那date包含实例的创建时间:

class Foo {
  private final Date date;

  Foo() { this.date = new Date(); }

  Date getDate() { return date; }
}

现在,如果我调用getDate().setTime(0) ,我可以使实例看起来像是在 1970-1-1 00:00:00Z 创建的.

如果您有一些基于 Foo 的创建日期的逻辑,可以通过这种方式操纵它以实现不同的行为。

关于java - 对私有(private)类成员的引用怎么可能是危险的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38375990/

相关文章:

c++ - 为什么 C++ STL 如此大量地基于模板? (而不是在*接口(interface)*上)

java.lang.ClassNotFoundException : Cannot find implementation for com. 如何处理java.demo.mapper.MapperDTO

java - 使用 Jakarta Digester 还是 JAXB?

security - 数据库级别的 UUID 用作安全措施而不是真正的权限控制?

asp.net-mvc - 同时使用 NWebSec.Mvc 和 NWebSec.OWIN 时,是否需要在 2 个地方配置安全性?

objective-c - 在尽可能少的耦合下在许多类之间传递一个对象

java - 一旦由 Lambda/Serverless 部署,就无法摆脱 JSON 中的 '\' 字符

java - GPS 坐标解析和渲染 - Java 库?

php - {${phpinfo()}} 叫什么? (远程命令执行相关)

php - 使用旧/新语法调用 PHP 父构造函数