S'abonner à la newsletter ou flux RSS pour recevoir automatiquement les mises à jour de blog!

En invoquant la protection d'une classe privée ou Java: bien sûr, c'est impossible?



La réponse correcte est: "dépend de la présence ou l'absence d'un gestionnaire de sécurité."

En effet, à travers la réflexion est effectivement possible d'aller à la force des contraintes du langage Java sans trop de difficulté, ammenochè fait ce n'est pas un gestionnaire de la sécurité, le seul acteur capable de vraiment gérer et finalement mettre fin à ces types de forces.

Mais nous sommes maintenant l'exemple qui vaut plus que de nombreux disquisition. Compte tenu de la classe suivante:

 package net.nothing2hide.test; public class ClassWithMethodsToHack { private void sayHello(String name){ System.out.println("Hello " + name + "! You're calling a private method"); } } 

nous voulons montrer comment facilement invoquer la méthode du secteur privé sayHello ", comme je l'ai déjà avancé de le faire largement usage de la réflexion:

 package net.nothing2hide.test; public class PrivateMethodInvocationTest { /** * This sample class demonstrates how to * invoke a protected method on another class * * @param args */ public static void main(String[] args) { String myName = "Davide"; Method m; try { //Let'access the private method //by reflection. You could do the same //with a protected method m = ClassWithMethodsToHack.class.getDeclaredMethod( "sayHello", new Class[]{String.class}); if (m != null) { //Let's force the java language access //checks on the reflected method. Note //that if a security manager is defined //this workaround could not be permitted //and a SecurityException could be raised m.setAccessible(true); //And finally let's invoke the protected method m.invoke(new ClassWithMethodsToHack(), new Object[]{myName}); } } catch (Exception e) { e.printStackTrace(); } } } 


Vous avez aimé cet article? Inscrivez-vous maintenant pour recevoir les mises à jour ou des articles de presse:
Abonnez-vous aux flux RSS écrire au flux RSS


Toujours pas de commentaire "

Fil RSS des commentaires pour cet article. TrackBack URI

Laisser un commentaire

XHTML: <a href="" title="fete_christel <abbr title="fete_christel <acronym title="fete_christel <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Nothing2Hide © 2006 Tous droits réservés.

License | Déni de responsabilité

Fermer
Envoyer un e-mail