Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This noncompliant code example exemplifies demonstrates how a malicious subclass Sub can both override the doLogic() method of the superclass and also increase the accessibility of the overriding method. Any user of Sub will be able to invoke the doLogic method as because the base class BadScope defines it with the to be protected access modifier. The class Sub can allow more access than BadScope Class Sub increases the accessibility of doLogic by declaring its own version of the doLogic() method {{public}method to be public.

Code Block
bgColor#FFcccc
class BadScope {
  protected void doLogic() { 
    System.out.println("Super invoked"); 
  }
}

public class Sub extends BadScope {
  public void doLogic() { 
    System.out.println("Sub invoked");
    // Do sensitive operations
  }
}

...