Java >> Java tutorial >  >> Tag >> Log4j

Hvordan kan jeg kryptere adgangskoden i log4j.properties?

Det tror jeg ikke er muligt. Selvom det er muligt, så overvej følgende:

Hvis du kan etablere en forbindelse ved kun at angive en "krypteret adgangskode", er det ligesom adgangskoden ikke er krypteret, fordi alle, der kopierer den krypterede adgangskode, kan oprette forbindelse og kompromittere din database. Den eneste forskel er, at adgangskoden præsenteres på en anden måde og måske mindre menneskelig læsbar, men stadig fuldt ud nyttig. Selvom du implementerer en vis symetrisk afkryptering af adgangskoden i din kode, hvis angriberen har adgang til din konfigurationsfil, der indeholder den krypterede adgangskode, er det meget sandsynligt, at han også har adgang til din kode, der kører på den samme maskine, der indeholder ukrypteringsalgoritmen og ville være i stand til at dekompilere og læse algoritmen.

Opret hellere en DB-bruger med begrænsede adgangsrettigheder til kun at skrive ind i logningstabellen. På denne måde kan en stjålet adgangskode ikke skade din database særlig meget.


Gudskelov, endelig fik du en løsning til at holde krypteret adgangskode i Log4j.properties

Det eneste, vi skal gøre, er,

Repliker JDBCAppender klasse af log4j.jar.

Rediger definitionen af ​​

public void setPassword(String password)
  {
          this.databasePassword = password;
  }

i JDBCAppender

efter dit behov Og udskift den klasse i log4j.jar.


Java tag