|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
[MySql]Come si gestisce una tabella user e password?
Ciao a tutti
![]() Come da titolo, mi trovo in questa situazione: Al db mysql in oggetto, devono poter accedere diversi utenti da diversi punti non intranet e con indirizzi ip che possono variare, escluderei quindi il GRANT. Adesso, se volessi creare una tabella id, user, password all'interno del db, avrei queste domande: 1) E' fattibile? 2) Come si cripta il campo password? Grazie. RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Sep 2006
Città: ~
Messaggi: 146
|
Certamente. Un esempio potrebbe essere:
Codice:
CREATE TABLE login (id INTEGER PRIMARY_KEY, user VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL);
__________________
Computers are like conditioned air: they work fine 'till you open windows. ![]() |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2006
Messaggi: 229
|
Spero di non andare OT, però può essere interessante :
dato che sia password(), sia md5(), sia sha1() sono one-way ( cripti e non puoi più recuperare la pass ), mi domandavo come fanno certi gestori a fare il classico form "dammi un po' di dati e ti diremo la pass". Si dovrebbe utilizzare un algoritmo di criptazione a chiave oppure si tengono salvate le pass in chiaro da qualche altra parte ![]() Argh, ho visto ora che ci sono le funzioni AES e DES.. ma allora non è meglio usare AES ? ( spero di non aver detto una caxxata ^^ ) Ciau
__________________
Una volta eliminato l'impossibile, quello che resta, per improbabile che sia, dev'essere la verità http://timestop.netsons.org/ -> il blog sull'informatica |
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Sep 2006
Città: ~
Messaggi: 146
|
Quote:
Quei gestori che forniscono una password se vengono inseriti alcuni dati corretti (solitamente la risposta ad una "domanda segreta"), in realtà forniscono una nuova password (a volte temporanea), modificando quella corrente dell'utente. Poi sarà cura dell'utente stesso modificarla di nuovo (magari reinserendo quella precedentemente scelta). A meno di casi particolari è meglio non usare forme di crittografia reversibili, sia per una questione di sicurezza, sia per poter dare la garanzia all'utente che nessuno (nemmeno l'amministratore del DB) possa spacciarsi per lui.
__________________
Computers are like conditioned air: they work fine 'till you open windows. ![]() |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Grazie per le risposte.
Non ho ancora capito però come funziona il tutto: 1)Creo il database 2)Non creo privilegi di nessun tipo 3)Creo la tabella con user e pass .... Quando l'utente si collega, se non ha come prima cosa i privilegi a livello di grant, come fa a loggarsi su una tabella di un db dove non ha privilegi?
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Sep 2006
Città: ~
Messaggi: 146
|
Quote:
Tramite questo utente (che solo l'amministratore conosce), esegui tutte le query necessarie; tra le quali anche la verifica del login per gli utenti finali. Edit: In pratica gli utenti finali saranno utenti dell'applicazione, non del DBMS.
__________________
Computers are like conditioned air: they work fine 'till you open windows. ![]() Ultima modifica di thehuge : 03-07-2008 alle 14:33. Motivo: aggiunta chiarimento |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Quote:
Cioè: Devo dare un grant (anche se ad un solo utente) senza restrizioni. Questo perchè l'utente non si collegherà sempre dalla stessa macchina, quindi, il suo ip può cambiare in qualunque momento.. Devo quindi fare: Codice:
GRANT tipoPrivilegio ON mioDb.* to utente identified by 'password' //senza quindi specificare l'host Non ci sono altre soluzioni? Grazie mille ![]() RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
|
![]() |
![]() |
![]() |
#8 | ||
Member
Iscritto dal: Sep 2006
Città: ~
Messaggi: 146
|
Quote:
Se l'applicazione è eseguita da un server (PHP, Servlet Java, ASP, CGI, e molti altri) puoi tranquillamente permettere l'accesso solo dall'IP del server. Altrimenti (Applet Java, JavaScript, e qualunque cosa venga eseguita dal client) è proprio così. Quote:
In più si aggiunge almeno un problema: i permessi così creati valgono solo per il DB, non per la tua applicazione (se dovesse modificare i comportamenti a seconda dell'utente); quindi dovresti verificarli tramite il DB ad ogni azione da compiere. Edit: E comunque dovresti avere almeno un utente amministratore che si occupi della gestione degli utenti finali (con permessi di GRANT... non molto sicuri da esporre ad una applicazione).
__________________
Computers are like conditioned air: they work fine 'till you open windows. ![]() Ultima modifica di thehuge : 03-07-2008 alle 15:14. |
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:55.