Java J2SE propertise fil

Tags:    java j2se propertise

Hej alle udviklere.

EDIT: Jeg mente bare Java SE, J2 fik lige sneget sig med.

Jeg sidder i øjeblikket og fifler med et simpelt konsol program lavet i Java, hvor jeg laver en database forbindelse til en MySQL service via en
propertise fil.

Propertise fil
Fold kodeboks ind/udJava kode 


Henter indhold fra properties filen via
Fold kodeboks ind/udJava kode 


Q1
Når jeg compiler mit program til en java.jar fil, hvordan sikre jeg så at min propertise fil kun kan eksekveres og læses af programmet som eksekvere den(min jar fil)? Så man ikke kan aflure indholdet af filen.

Er dette noget Java sikre som standard gør eller er der noget man aktivt skal gøre?

Database brugeren jeg bruger har kun select rettigheder tilknyttet en bestemt tabel, men ville gerne lære hvordan jeg kan beskytte min propertise fil.

Q2
Jeg er blevet fortalt at man ved at debugge et Java program kan opsnappe f.eks. Kodeord og brugernavn som bruges til at verificere sig op imod en sql service. Nogle der kender eksempler på hvordan man kan forhindre dette?

Hvis i har nogle links der forklare overstående må i meget gerne ligge dem. Det ville være super hjælp.

Tak på forhånd.



Indlæg senest redigeret d. 04.01.2015 11:03 af Bruger #17719
1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Q1: Kan din jar fil læse property filen, så kan brugeren også...det er der ikke rigtig noget at gøre ved, men du kan skjule den lidt ved at embedde den i jar filen og læse den via classloaderen.
Fold kodeboks ind/udJava kode 


Men alle kan altså skille jar filen ad og læse filen.

Q2: Ja, det kan man, eller ved at decompile/disassemble filen, og det kan du ikke forhindre.
Du kan gøre det en anelse sværere ved at obfuscere koden med f.eks. Zelix Klassmaster: http://www.zelix.com/klassmaster/

Hvis ikke brugeren skal have adgang til databasen, så lav en server, som leverer dataene til programmet, som brugeren benytter. F.eks. som en webservice som leverer data og tager imod opdateringer via et REST interface.



t