SORU
8 Kasım 2013, Cuma


Özel yöntemler gerçekten güvenli mi?

Java private erişim değiştiricisi sınıfının dışında görünür olmadığı kadar güvenli düşünün. Sonra dış dünya bu yöntem hakkında da hiç bir şey bilmiyor.

Ama Java yansıma bu kuralı kırmak için kullanabilir diye düşündüm. Aşağıdaki durum düşünün:

public class ProtectedPrivacy{

  private String getInfo(){
     return "confidential"; 
  }

}  

Şimdi başka bir sınıftan Bilgi almak için gidiyorum:

public class BreakPrivacy{

   public static void main(String[] args) throws Exception {
       ProtectedPrivacy protectedPrivacy = new ProtectedPrivacy();
       Method method = protectedPrivacy.getClass().getDeclaredMethod("getInfo", null);
       method.setAccessible(true);
       Object result = method.invoke(protectedPrivacy);
       System.out.println(result.toString());
   }
} 

Şu anda sadece yöntem adı bilmeliyiz yukarıdaki gibi bir şey yapmak beri hala özel yöntem güvenli düşündüm. Ama özel bir yöntemi içeren sınıf bazı biri tarafından yazılmış, başka kişilerin görüş yok.

Ama benim açımdan bu yana kod satırı aşağıda geçersiz olur.

Method method[] = new ProtectedPrivacy().getClass().getDeclaredMethods();

Şimdi method[] bu şeylerin üstünde bir şey yapmak zorunda içerir. Benim sorum, bir şekilde bir şeyleri kullanarak Java yansıma yapıyor bu tür önlemek için var mı?

Java Documentation bazı nokta sorumu açıklığa kavuşturmak için Alıntı yapıyorum.

İpuçları bir Erişim Düzeyi Seçimi:

Eğer diğer programcılar sınıf kullanıyorsanız, bu hataları sağlamak istiyoruz yanlış bir şey olamaz. Erişim düzeyleri size bu konuda yardımcı olabilir.Kullanın mantıklı olan en kısıtlayıcı erişim düzeyi için belirli üye. İyi bir nedeniniz yoksa özel kullanın.

CEVAP
8 Kasım 2013, Cuma


Ne demek ne bağlıdır"". güvenli Eğer bu tür şeylere izin veren bir güvenlik yöneticisi ile çalışan iseniz, o zaman evet, yansıması ile kötü şeyler her türlü yapabilirsiniz. Ama sonra bu tür ortamda kütüphane muhtemelen bu yöntem kamu her neyse yapmak için değiştirilebilir.

Erişim kontrolü etkin "" bu şekilde kod güzel oynamak güveniyorsun. böyle bir ortamda danışma. Eğeryokkaçıyorsun güven kod, daha kısıtlayıcı bir güvenlik yöneticisi kullanmalısınız.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bucky Roberts

    Bucky Robert

    9 HAZİRAN 2011
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • lifeisforsharingDT

    lifeisforsha

    18 Mayıs 2011