Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [mysql] configurazione sicura con gli utenti!

    ciao

    fino ad ora ho sempre sviluppato in php e mysql per applicativi locali, o cmq accedendo a database di hoster con account che mi venivano forniti dall'hoster...quando lavoravo in locale utilizzavo l'utente root e la password che avevo configurato nel db mysql con il famoso comando

    update user set password=password('pwd') where user='root';

    ora sto configurando il mio server in modo che possa accedervi un mio cliente, giustamente non mi va di dargli l'account root quindi ho creato un nuovo utente, ma cosa scopro? che le conessioni al database , che solitamente faccio con questa classe

    Codice PHP:
    <?

    include ("connection_data.php");



    class 
    Connessione{



    var 
    $host;

    var 
    $db;

    var 
    $user;

    var 
    $password;



    var 
    $conn;//nome della connessione

    var $database;//nome del database



        
    function Connessione(){

        
    //setto le variabili

        

        
    $this->host=connection_get_host();

        
    $this->db=connection_get_db();

        
    $this->user=connection_get_user();

        
    $this->password=connection_get_password();

        

        
    /*

        con mysql

        */

        //setto il nome della connessione

        
    $this->conn=mysql_connect($this->$host,$this->$user,$this->$password);



        
    //seleziono il database    

        
    $this->database=mysql_select_db($this->db,$this->conn);



        }



        function 
    Connessione_parametri($host,$db,$user,$password){

        

        
    //setto le variabili

        

        
    $this->host=$host;

        
    $this->db=$db;

        
    $this->user=$user;

        
    $this->password=$password;

        

        
    //setto il nome della connessione

        
    $this->conn=mysql_connect($this->$host,$this->$user,$this->$password);



        
    //seleziono il database    

        
    $this->database=mysql_select_db($db,$this->conn);



        }

        

        function 
    get_conn(){

        return 
    $this->conn;

        }

        

        function 
    get_db(){

        return 
    $this->database;

        }

        

    }

    ?>
    file incluso:
    Codice PHP:
    <?

    function connection_get_host(){

    return 
    "localhost";

    }



    function 
    connection_get_db(){

    return 
    "nome_database";

    }



    function 
    connection_get_user(){

    return 
    "root";

    }



    function 
    connection_get_password(){

    return 
    "nicola";

    }

    ?>
    riesco a fare con qualsiasi utente!! io posso mettere QUALSIASI cosa al posto di "root" o "nicola" che la connessione funziona comunque!

    e questa cosa succede sia su un server win2003 con mysql 4.0.18 installato con l'installer

    che sul mio portatile con la slack10 e mysql 4.1.9 compilato da codice!!!



    sicuramente sarà una cosa relativa alle impostazioni...ma dove?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  2. #2
    Utente di HTML.it L'avatar di dalang
    Registrato dal
    May 2003
    Messaggi
    252
    Ho dato un'occhiata veloce al codice e mi è sorto un dubbio:
    che differenza c'è tra le funzioni

    function Connessione_parametri($host,$db,$user,$p
    assword)

    e

    connection_get_host()

    Quando inizializzi la classe ci metti i valori con connection_get_host(), ma non è che dopo, nel codice delle pagine.php richiami la funzione Connessione_parametri, e gli passi i parametri di root, cancellando quelli che avevi? e quindi si connette sempre con i parametri di root?!?

    Altra cosa:
    dovresti includere il file dentro alla classe e richiamare le funzioni con
    $this->host = $this->connection_get_host();

    Così ha più senso nella programmazione ad oggetti...

  3. #3
    la tua osservazione è vera io avevo fatto cosi perchè cambiavo il valore di ritorno nelle funzioni in connection_data.php e non toccavo mai il file di connessione..

    x il resto invece uso sempre la connessione senza parametri, infatti se metto un host o un database errato in connection_data.php lo script da errore, quindi è proprio sugli utenti/password il problema!!
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  4. #4
    ma scusate...a voi succede la stessa cosa?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  5. #5
    Utente di HTML.it L'avatar di dalang
    Registrato dal
    May 2003
    Messaggi
    252
    Non è che hai lasciato qualche permesso a "anyone" o "all" (non ricordo il termine preciso, comunque c'era qualcosa che dava permessi a tutti)

    Controlla gli utenti...

  6. #6
    il fatto è che io gli utenti non li ho mai configurati perchè come detto sopra usavo sempre root,

    ora, forse ho capito, guardando la tabella user del db mysql vedo i seguenti record:

    codice:
      	  Edit   	  Delete   	localhost  	root  	0215008c7506bbab  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	Y  	   	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	0  	0  	0
    	Edit 	Delete 	% 	root 	0215008c7506bbab 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	  	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	0 	0 	0
    	Edit 	Delete 	localhost 	  	  	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	Y 	  	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	0 	0 	0
    	Edit 	Delete 	% 	  	  	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	  	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	[BLOB - 0 Bytes] 	0 	0 	0
      With selected: Edit   Delete
    significa che l'accesso funziona comunque perchè mi sto connettendo da localhost?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  7. #7
    ho risolto!!

    l'errore era qui!:

    Codice PHP:
        $this->conn=mysql_connect($this->$host,$this->$user,$this->$password); 
    come vedete anche voi le variabili host,user e password sono sbagliate, questo è quello corretto:

    Codice PHP:
        $this->conn=mysql_connect($this->host,$this->user,$this->password); 

    resta da chiarire come mai , pur avendo eliminato tutti gli utenti nella tabella users di mysql (tranne root) si riesce ad entrare comunque...
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

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.