Uutiskirjeen tai RSS-syötteen saada päivitykset automaattisesti blogiin!

Vedoten on suojattu tai yksityinen luokan java: varma, että on mahdotonta?


Advertisement


Oikea vastaus on: "riippuu läsnäolo tai puuttuminen, Security Manager."

Itse kautta harkinta on todella mahdollista mennä pakottaa rajoitukset Java-kielellä, ilman kohtuuttomia vaikeuksia, ammenochè ei ole vain Security Manager, ainoa toimija pystyy todella hallita ja lopulta lopettaa tällaisia voimia.

Mutta meillä on nyt esimerkki siitä, että on arvokkaampi kuin monet disquisition. Koska seuraava luokka:

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

haluamme osoittaa, kuinka helposti vedota menetelmä yksityisten sayHello ", kuten olen jo edennyt niin voimakkaasti käyttää harkinta:

 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(); } } } 


Piditkö tämä artikkeli? Rekisteröidy nyt saamaan päivityksiä tai uutisia:
Tilaa RSS-syötteet kirjoittaa RSS-syöte


Vielä ole kommentti -

Kommentit RSS-syöte tähän virkaan. Trackback URI

Jätä kommentti

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


Nothing2Hide © 2006 Kaikki oikeudet pidätetään.

Lisenssi | Disclaimer

Sulje
Lähetä sähköposti