Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    90

    Connessione al DB sicura da decompilatori

    Vedete, mi sono sempre chiesto (cercando anche parecchio ) come si può fare per evitare che "malintenzionati" decompilino il codice risalendo a dati sensibili come quelli di connessione a un db.
    Mi spiego meglio :
    mettiamo che il mio programma java SE desktop si debba connettere al db di un mio sito online dovrò scrivere come codice :

    codice:
    Connection c = DriverManager.getConnection(url, user, password);
    tenendo conto che url,user e password sono stringhe, come potrei fare per evitare che chi decompila risalga ad esse ? Come potete immaginare sarebbe un bel problema se qualcuno ne venisse a conoscenza.

    Vi ringrazio anticipatamente

    PS. Avevo pensato a qualcosa del genere, ma il decompilatore fa troppo bene il suo lavoro :
    codice:
    String password=String.valueOf((char)109)+String.valueOf((char)111)+String.valueOf((char)99);
    PPS. Per favore non ho intenzione di aprire un dibattito sull'open source o quant'altro. Grazie

  2. #2
    e se si criptassero le stringhe con md5 o sha1??
    (magari è una sciocchezza.......).

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    90
    No no, non è una sciocchezza, ma purtroppo è inutile.
    I parametri da passare sono quelli effettivi , quindi anche criptandoli con md5 non va bene.
    Esempio pratico :

    codice:
    String user = "prova";
    
    /*CODICE PER CRIPTARE user con md5*/
    String userCrypt= "stringa criptata";
    
    Connection c = DriverManager.getConnection(url, user, password);
    Quindi dal codice capisco che la stringa user è stata criptata in md5 e il suo risultato è univoco quindi si puo risalire alla passw effettiva..

  4. #4
    Ehmm...c'è qualcosa che non mi torna..in sostanza tu stai esponendo il tuo database direttamente su un ip pubblico?
    Non sarebbe meglio scrivere una parte server del tuoi programma che interroga lei ad hoc il database (solo per quello che serve all'applicativo) e poi una parte client (applicazione SE) che interroga la parte server per fare il suo lavoro? In questo modo il tuo database resta protetto, hai voglia decompilare la parte desktop...
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Originariamente inviato da Ale88
    Quindi dal codice capisco che la stringa user è stata criptata in md5 e il suo risultato è univoco quindi si puo risalire alla passw effettiva..
    Ammesso che dal codice si possa capire che la stringa è criptata in MD5 (cosa a cui si rimedia applicando qualche altro trucchetto a seguire sull'md5 o applicando 2 volte l'md5), ammesso che MD5 sia facilmente reversibile (e direi che non lo è affatto), ti rinnovo l'invito sopra a strutturare meglio l'applicativo
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    90
    Il problema è che il programma per il momento utilizza un solo database in locale, quindi per ora vorrei proteggere principalmente questo, poi stavo pensando di implementare un'altro servizio che dovrà utilizzare ud db su server, quindi prenderei due piccioni con una fava..

    Mi piacerebbe capire meglio come scrivere del codice per non far capire il metodo di criptazione visto che per farlo bisogna sempre passare come stringa "md5" . :

    codice:
     MessageDigest algorithm = MessageDigest.getInstance("MD5");
           	 algorithm.reset();
           	 algorithm.update(password);
            //etc
    Non so, intanto ti ringrazio per la disponibilità aspettando lumi..

  7. #7
    Originariamente inviato da Ale88
    Il problema è che il programma per il momento utilizza un solo database in locale, ...
    Quindi non vedo quale sia il problema! Se qualcuno deve utilizzare il tuo applicativo dovrà avere un suo DB in locale del quale avrà sicuramente la sua utenza. Piuttosto non è corretto cablare a codice questi dati, ma sarebbe auspicabile utilizzare un file di properties esterno.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    90
    Il problema è che dentro il DB in locale è inserito anche un seriale univoco per il pc , quindi, se si scopre la passw del db, il seriale si potrebbe cambiare con una semplice query.

    Poi comunque dovrò collegarmi ad un db online e visto che per ora di client e server ne so poco..vorrei inizialmente interfacciarmici tramite il programma SE

  9. #9
    Originariamente inviato da satifal
    Quindi non vedo quale sia il problema! Se qualcuno deve utilizzare il tuo applicativo dovrà avere un suo DB in locale del quale avrà sicuramente la sua utenza. Piuttosto non è corretto cablare a codice questi dati, ma sarebbe auspicabile utilizzare un file di properties esterno.
    Ovviamente quoto
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  10. #10
    Originariamente inviato da Ale88
    Il problema è che dentro il DB in locale è inserito anche un seriale univoco per il pc , quindi, se si scopre la passw del db, il seriale si potrebbe cambiare con una semplice query.

    Poi comunque dovrò collegarmi ad un db online e visto che per ora di client e server ne so poco..vorrei inizialmente interfacciarmici tramite il programma SE
    Si ma non puoi avere tutto , se non sei ancora in grado di implementare soluzioni sicure accontentati di quelle non sicure . La strada maestra te l'ho indicata , quando ti sentirai pronto , usa la forza... ( )
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.