Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Gestione utenti

  1. #1

    Gestione utenti

    Avrei bisogno di creare un portale web che:

    - Permetta la registrazione da verificare via mail
    - Permetta di aggiornare il proprio profilo con allegati e foto
    - Permetta di mandare mail mirate ad alcuni di questi o a tutti


    Ho cominciato sviluppando il sistema da 0 e mi sono arenato con il caricamento degli allegati.

    Purtroppo però avendolo scritto io da 0 non è particolarmente sicuro e ha diversi bus. Esistono delle soluzioni che possa usare come base?

    Ho cercato di estrapolare parte del codice di phpbb o di phpmembers ma risulta più svantaggioso che altro...

  2. #2
    Ho creato anche io un portale da 0.

    Il problema della sicurezza l'ho risolto seguendo diversi accorgimenti e copiandio il metodo di autenticazione di joomla.

    Per quanto riguarda i file ho sperimentato diverse soluzioni, alla fine ho ritenuto che la soluzione più sicura era quella che prevedeva la memoriazzzione dei file all'interno del database.

    Qua puoi trovare l'articolo che spiega come fare.
    http://www.html.it/articoli/files-dentro-a-mysql-1/

    Spero di esserti stato utili.
    Saluti
    B.E.

  3. #3
    Gentilissimo davvero! Mi hai dato dei consigli molto utili...

    A questo punto chiedere è scontato: non è che potresti mandarmi i source del tuo progetto? Ovviamente se ci sono delle parti sensibili censurale

    Sarebbe davvero fantastico!

  4. #4
    Guarda la sorgente non posso dartela.
    Abbiamo sviluppato in azienda un algoritmo per criptare i dati e il tutto è integrato con il portale.

    Però posso rispondere a ogni tua domanda!

    Ciao
    B.E.

  5. #5
    Grazie 1000

    Per ora la difficoltà più grande è il sistema di autenticazione...

    Devo estrapolare il codice...

    Ti tengo informato... Poi devo capire bene come funziona la gestione degli allegati nel db non vorrei appesantirlo troppo...

  6. #6
    Il sistema di autenticazione l'ho realizzato nel seguente modo.

    Come prima cosa ho creato un Database mysql contentne i seguenti campi

    id_utente
    username
    password
    nome
    cognome
    email

    Nel campo password ho messo la password dell'utente criptata, da confrontare con la password che inserira l'utente.

    Per l'autenticazione ho creato diverse funzioni

    Funzione 1 - Login

    Funzione Login, riceve come parametri i dati di autenticazione (user e pass) che vengono inseriti nel form dall'utente, questa funzione sarà richiamata dalla pagina princiapale quando l'utente invia il form.

    Eseguo le seguenti operazioni:
    Raccolgo tutti i dati dal DB utenti
    Verifico se i dati dell'utente corrispondono a quelli inseriti.
    scrivo due valori in due variabili di sessione per ricordarmi che l'utente e connesso.
    Visto che questo portale contiene dati sensibili avviso subito l'utente che è stato effettuato l'accesso, inviando una mail all'indirizzo utente nel db contenute l'username, l'ora e l'indirizzo ip.
    Scrivo in un altra tabella nel db che ho chiamato log_accessi, tutti i dati dell'utente compreso l'indirizzo IP.

    Funzione 2 - Logout

    Questa funzione non riceve nessun parametro in ingresso, viene richiamata quando premo il tasto logout e semplicemente distrugge tutte le varibili sessione.

    funzione 3 - Auth

    Questa funzione viene eseguita all'inizio della pagina e verifica se l'utente è connesso.

    Nel caso sia connesso restituisce una variabile $user contente una serie di dati dell'utente.

    Per vedere se l'utente e connesso dopo aver richiamato questa funzione verifico i parametri di questa variabili.

    Parametri di esempio:
    auth -> Vero se l'utente è autenticato
    admin -> Vero se l'utente è amministratore
    username -> Username utente

    ecc.

    Fine delle funzioni


    Non posso darti il sorgente comunque ho descritto in modo molto dettagliato il meccanismo di autenticazione.

    Inpiu per maggiore sicurezza ho creato un algoritmo che cripta eescripta tutti i dati inseriri nel database.

    Adesso sto sviluppando il sistema che per completare l'auteticazione devi inseriri deu ulteriori codici uno ricevuto per e-mail e l'altro per sms.

    Se vuoi vedere invece come funziona lato utente il sistema scrivimi un messaggio privato che ti mando un accesso di test.

    Ciao
    Buona Serata
    B.E.

  7. #7
    Originariamente inviato da edo89b
    Il sistema di autenticazione l'ho realizzato nel seguente modo.

    Come prima cosa ho creato un Database mysql contentne i seguenti campi

    id_utente
    username
    password
    nome
    cognome
    email

    Nel campo password ho messo la password dell'utente criptata, da confrontare con la password che inserira l'utente.

    Per l'autenticazione ho creato diverse funzioni

    Funzione 1 - Login

    Funzione Login, riceve come parametri i dati di autenticazione (user e pass) che vengono inseriti nel form dall'utente, questa funzione sarà richiamata dalla pagina princiapale quando l'utente invia il form.

    Eseguo le seguenti operazioni:
    Raccolgo tutti i dati dal DB utenti
    Verifico se i dati dell'utente corrispondono a quelli inseriti.
    scrivo due valori in due variabili di sessione per ricordarmi che l'utente e connesso.
    Visto che questo portale contiene dati sensibili avviso subito l'utente che è stato effettuato l'accesso, inviando una mail all'indirizzo utente nel db contenute l'username, l'ora e l'indirizzo ip.
    Scrivo in un altra tabella nel db che ho chiamato log_accessi, tutti i dati dell'utente compreso l'indirizzo IP.

    Funzione 2 - Logout

    Questa funzione non riceve nessun parametro in ingresso, viene richiamata quando premo il tasto logout e semplicemente distrugge tutte le varibili sessione.

    funzione 3 - Auth

    Questa funzione viene eseguita all'inizio della pagina e verifica se l'utente è connesso.

    Nel caso sia connesso restituisce una variabile $user contente una serie di dati dell'utente.

    Per vedere se l'utente e connesso dopo aver richiamato questa funzione verifico i parametri di questa variabili.

    Parametri di esempio:
    auth -> Vero se l'utente è autenticato
    admin -> Vero se l'utente è amministratore
    username -> Username utente

    ecc.

    Fine delle funzioni


    Non posso darti il sorgente comunque ho descritto in modo molto dettagliato il meccanismo di autenticazione.

    Inpiu per maggiore sicurezza ho creato un algoritmo che cripta eescripta tutti i dati inseriri nel database.

    Adesso sto sviluppando il sistema che per completare l'auteticazione devi inseriri deu ulteriori codici uno ricevuto per e-mail e l'altro per sms.

    Se vuoi vedere invece come funziona lato utente il sistema scrivimi un messaggio privato che ti mando un accesso di test.

    Ciao
    Buona Serata
    Funzione 1 ->
    Fai una query inserendo i dati inseriti dall'utente, criptati, se il db restituisce 0 righe ha sbagliato l'utente, 1 riga utente giusto, più di 2 righe errori nel db direi.

    Funzione 2 ->
    Potresti oltre a distruggere le variabili di sessione impostare un ora e segnarti l'ip del logout, potresti anche impostare nel login che se avviene entro 20 minuti dal logout con lo stesso ip l'utente può scegliere di non mandarsi l'email al login.

    Funzione 3 -> Scusa, ma salvati i dati nella sessione.... -.- e poi vai a confrontare in php.

  8. #8
    Funzione 1 ->
    Fai una query inserendo i dati inseriti dall'utente, criptati, se il db restituisce 0 righe ha sbagliato l'utente, 1 riga utente giusto, più di 2 righe errori nel db direi.
    Sto facendo esattamente una cosa simile.

    Funzione 2 ->
    Potresti oltre a distruggere le variabili di sessione impostare un ora e segnarti l'ip del logout, potresti anche impostare nel login che se avviene entro 20 minuti dal logout con lo stesso ip l'utente può scegliere di non mandarsi l'email al login.
    Non l'avevo scritto ma mi segno sempre indirizzo ip - azione data/ora in una tabella di log.
    Mentre alla disconnessione non invio nessuna e-mail, però non sarebbe una brutta idea quella di vedere i minuti di connessione e se superiori a 20 inviare una mail.

    Funzione 3 -> Scusa, ma salvati i dati nella sessione.... -.- e poi vai a confrontare in php.
    Si hai ragione però il sistema era nato cosi, perche era molto simile al sistema utilizzato da Joomla per conservare le informazioni dell'utente connesso.
    Inizialmente questa tre funzioni sono nate per effettuare il login di un portale esterno in un DB utenti Joomla.
    B.E.

  9. #9
    Per la funzione 3 puoi sempre modificare.
    Il fatto che il sistema fosse nato così non significa che non lo puoi migliorare pian piano no?

  10. #10
    Per la funzione 3 puoi sempre modificare.
    Il fatto che il sistema fosse nato così non significa che non lo puoi migliorare pian piano no?
    Lo farò nel prossimo upgrade, adesso sto finenendo una parte più urgente.

    Io ho fatto in questo modo qua

    Codice PHP:
    $utente FunzioneAuth(); 
    Nella array $utente ho tutta una serie di parametri.
    Potrei fare la stessa cosa mettendoli in una sessione php come dici tu

    Che differenza c'è tra richimare una il sistema che ho utilizzato io io e usare solamente le sessioni php? Cosi per curiosita a parte un codice più pulito.
    B.E.

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.