GrAndSE’s blog

Думки, думки і ще раз думки

private методи в java

Зазвичай вважається, що з точки зору безпеки java просто чудова як мова програмування. В деяких випадках я замислююсь, а чи це так в дійсності.
Спочатку я побачив спосіб роботи з класами java, використовуючи Firefox, що дозволяє відлагоджувати аплети користуючись браузером. Тоді серед коментарів був такий: “И пусть кто-то скажет, что зря придумали private методы”. Однак сьогодні в майже сусідньому блозі знайшов ось такий приклад:
import java.lang.reflect.*;

class A {
private void f() {
System.out.println(”Running A.f()”);
}
}

public class Main {
public static void main(String[] args) throws Exception {
Class a = new A().getClass();
Method m = a.getDeclaredMethod(”f”, null);
m.setAccessible(true);
m.invoke(new A(), null);
}
}
Здається, це повноцінна можливість втручання в роботу тих самих аплетів, можливість використовувати те, щоя зоборонено.
Джерело прикладу

Січень 14, 2008 - Опубліковано grandse | Програмування | , | 1 коментар

1 коментар »

  1. Все залежить від настройок безпеки у JVM…

    Comment by Afedaxo | Червень 7, 2009 | Відповісти


Залишити коментар