Java Reflection Part 1

Mở đầu

Để tiếp tục chuỗi serie Java Security 101 này chúng ta cần biết về những kiến thức java, đặc biệt java reflection và lỗ hổng Insucure Deserialization.

Giới thiệu về Reflection

Java reflection là một tính năng của java, cho phép chương trình kiểm tra và thay đổi hành vi của các object tại runtime. Điều này có nghĩa là bạn có thể truy cập vào class, method, properties của các object khi chương trình đang chạy ngay cả khi chúng ta không biết trước chúng là gì

Lợi ích của Reflection

  • Khám pháp và sử dụng các class và method mới: Reflection cho phép các ứng dụng linh hoạt hơn, như các IDE, trình phân tích mã, hoặc các framework như Spring và Hibernate.

  • Thực hiện các tác vụ phức tạp: Reflection giúp các thư viện và framework thực hiện các tác vụ mà không cần biết trước chi tiết về các lớp mà chúng tương tác.

  • Kiểm tra và kiểm tra đơn vị: Reflection có thể được sử dụng để kiểm tra các lớp và phương thức mà không cần tạo các trường hợp thử nghiệm cụ thể.

Nhược điểm của Reflection

  • Hiệu suất: Reflection chậm hơn so với truy cập trực tiếp vào các lớp và phương thức do sự kiểm tra và xử lý tại runtime.

  • Bảo mật: Sử dụng Reflection có thể phá vỡ các nguyên tắc bảo mật, vì nó có thể truy cập vào các thành phần riêng tư của lớp.

  • Phức tạp: Reflection làm cho mã trở nên khó đọc và bảo trì hơn.

Last updated