Perché non dovresti usare JDBC nelle applet Java?

4

Ho sentito persone dire che l'uso di JDBC (Java Database Connectivity) non è raccomandato nelle applet Java. Tutto quello che dicono è: "per motivi di sicurezza". Che cosa significano "ragioni di sicurezza"? Cosa farebbe una persona potenzialmente "cattiva" quando scoprirà che JDBC è utilizzato in un'applet, posizionata da qualche parte su un sito Web? Per rendere sicura la propria applet, è consigliabile posizionare un servlet tra un'applet e un database. Credo che molti programmatori lo facciano, mi piacerebbe sapere perché.

    
posta BMC 13.01.2013 - 22:27
fonte

2 risposte

17

Al livello più elementare, il server di database non dovrebbe essere aperto a Internet pubblico. Se si desidera che gli utenti casuali che eseguono un'applet Java accedano direttamente al database, ciò implica che il database sia configurato per accettare connessioni da chiunque su Internet. In questo caso, un utente malintenzionato può attaccare il tuo database a suo piacimento senza preoccuparsi di penetrare prima in un firewall o accedere alla rete interna.

Poiché l'applet Java viene eseguita sul computer client, ciò significa che è abbastanza facile per un utente malintenzionato vedere esattamente cosa sta facendo l'applet in modo che possa facilmente estrarre il nome utente e la password per il database. Poiché abbiamo già stabilito che il server di database deve essere aperto su Internet affinché l'applet funzioni, ciò significa che un utente malintenzionato ha un nome utente e una password che possono utilizzare da qualsiasi strumento che desiderano. Così ora l'attaccante può fare qualsiasi cosa l'account del database che l'applet può utilizzare (ignorando qualsiasi sicurezza nell'applet) ma può anche cercare attacchi che consentano loro di aumentare i propri privilegi.

    
risposta data 13.01.2013 - 22:37
fonte
12
  1. perché dovresti esporre il tuo database a Internet

  2. devi consentire all'applet di accedere alla password utilizzata per connettersi al database, un hacker può facilmente estrarre la password da un debugger

  3. la maggior parte delle persone non pensa di utilizzare diversi account DB con diversi privilegi

  4. non puoi modificare facilmente la struttura del DB dopo la prima versione

risposta data 13.01.2013 - 22:32
fonte

Leggi altre domande sui tag