Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4

    autenticazione php/mysql

    Salve ragazzi, sono alle prime armi con php e mysql e sto seguendo le utilissime guide pubblicate sul vostro sito. Tuttavia mi ritrovo con un immenso dubbio. Vi spiego subito il problema:

    Devo realizzare un interfaccia web per permettere a dei clienti di inviare dei dati che verranno memorizzati su db. Il mio intento inizialmente era il seguente:

    - creo il db
    - l'amministratore, inserisce tramite phpmyadmin un nuovo utente per ogni cliente limitando i privilegi alle tabelle di interesse, ed invia le credenziali di accesso al cliente tramite mail
    - l'utente, ricevute le credenziali, può quindi effettuare login e compilare l'apposito modulo online il quale una volta premuto il tasto submit registra i dati del cliente sul database

    Quindi la mia idea suppone che l'amministratore inserisce ogni nuovo cliente e lo abilita ad inserire dati nel DB.

    Però mi è sorto un dubbio seguendo la seguente guida:
    http://www.html.it/guide/guida-php-e-mysql-pratica

    Nella guida che vi ho citato, viene utilizzato un altro approccio che, se non ho capito male, in linea generale dovrebbe essere il seguente:
    - creo una tabella login, all'interno del mio database, nella quale memorizzo le credenziali per ogni nuovo utente
    - creo un file php in cui inserisco i dati per effettuare la connessione al DB, quindi username e password ad esempio dell'amministratore
    - effettuo la connessione al db utilizzando i dati nel file php del passo precedente e autentico infine l'utente confrontando i dati inseriti (nome utente e password) con quelli presenti nella tabella login.

    Ecco i miei dubbi:
    1. ma se inserisco i dati per la connessione in chiaro in un file di configurazione php, non vi è il rischio che qualche malintenzionato possa accedere al file, recuperare quindi i dati ed entrare nel DB?
    2. Il metodo che avevo inizialmente pensato io, ovvero quello di far in modo che l'amministratore crea un nuovo utente per ogni cliente, quindi senza tabella login, ma utilizzando direttamente la funzione "nuovo utente" in PhpMyadmin è scorretto?

    spero potete darmi delle delucidazioni in merito, ovvero che riusciate a spiegarmi qual'è il metodo più corretto/sicuro di effettuare un sistema di autenticazione.

    PS. accetto consigli su eventuali alternative

  2. #2
    basta criptare le password. php e mysql offrono gli strumenti adeguati

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4
    potresti essere più chiaro in merito al "basta criptare le password"?
    E comunque mi piacerebbe capire la differenza tra i due approcci, ovvero:
    - con tabella login
    - creazione più utenti mysql

  4. #4
    se il tuo timore è che qualcuno, rubandoti in qualche modo la tabella degli utenti, possa leggere le password, criptandole le renderai pressoché indecifrabili (lasciamo perdere che se uno riesce a rubarti la tabella delle password non avrà ovviamente difficoltà a rubarti l'intero db ).

    se l'accesso al db avviene tramite applicativo, l'approccio con tabella di login è sicuramente meno invasivo, meno dispendioso e più performante rispetto alla creazione di utenti di database

    se invece devi date un accesso "fisico" al database (eccoti le password, fatti le query da solo ) allora non hai altra scelta che creare un utente di db


  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4
    Il mio timore sinceramente è che qualcuno possa recuperare le credenziali che vengono messe in chiaro nel file di configurazione php per stabilire la connessione al DB. Cioè ti spiego, se creo la tabella di login per gestire l'accesso degli utenti, per stabilire la connessione al DB devo sfruttare il file di configurazione php dove metto in chiaro la password e il nome utente, ad esempio
    private $nomehost = "localhost";
    private $nomeuser = "username";
    private $password = "password";

    Non c'è il pericolo che qualcuno possa leggere le credenziali nel file di configurazione?
    Mi hai suggerito di criptare le password. Potresti per favore essere più chiaro? cioè quali sarebbero la procedura e gli strumenti più corretti da utilizzare? scusa ma sono alle prime armi con php e mysql e non conosco bene gli strumenti.

    Sempre nella guida che ho recedentemente indicato ad esempio, l'autore ad esempio si crea un funzione insert in cui passa i dati da inserire nella tabella di login:
    // definizione delle variabili da passare alla funzione per l'inserimento dei dati
    $t = "login"; // nome della tabella
    $v = array ("admin",sha1("password")); // valori da inserire
    $r = "username_login,password_login"; // campi da popolare
    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);

    In questo modo la password dell'utente viene criptata con sha1, ma i parametri della connessione al DB rimangono sempre in chiaro nel file di configurazione php.

  6. #6
    l'accesso al db è libero o è tramite un applicativo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2014
    Messaggi
    4
    in che senso?
    Comunque a me serve che i dati inseriti nel form vengano memorizzati nel db, quindi è la pagina php che effettua la connessione.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.