...
Code Block |
---|
public interface CallBack { void callMethod(); } class CallBackImplMyCallBack implements CallBack { public void callMethod() { System.out.println("CallbackCallBack invoked"); } } class Client { CallBack callback; public void registerCallbackregisterCallBack(CallBack callback) { this.callback = callback; } public void doSomething() { callback.callMethod(); } public static void main(String[] args) { Client client = new Client(); CallBack myCallbackmyCallBack = new CallBackImplMyCallBack(); client.registerCallbackregisterCallBack( myCallbackmyCallBack); // ... client.doSomething(); // prints "CallbackCallBack invoked" } } |
Callback methods are often invoked with no changes in privileges. This means that they may be executed in a context that has more privileges than the context in which they are declared. If these callback methods accept data from untrusted code, privilege escalation may occur.
...