• User

    Nascondere DB MySQL

    Salve,

    Forse la soluzione è più facile di quanto io non pensi, ma al momento mi sfugge.

    Vorrei poter installare Wordpress sull'hosting di un cliente ma agganciarlo a un DB mio, al quale solo io accedo.

    Ho provato a mettere in un mio dominio un file inc.php con due variabili con username e password del DB, e nel wp-config.php un include di queste variabili, ma non funziona.

    Altrimenti chiunque abbia accesso all'hosting del sito può accedere anche al DB, con i dati di connessione ripotati nel wp-config.php.

    Avete qualche suggerimento?

    Grazie a tutti.


  • User

    Ho provato di nuovo, su un altro hosting ma il risultato non cambia.

    Eppure deve esserci un modo per rendere impossibile l'accesso ad un DB anche se altri ne conoscono username e password...

    Nessuno si è mai trovato in questa situazione?


  • User Attivo

    la questione si risolve lato server:
    nel file di configurazione (wp-config.php) al posto di "locahlhost" devi mettere l'indirizzo IP del tuo server.

    Non solo.
    Se il web-server del tuo cliente non possiede i permessi per connettersi ad un altro web-server... dovrai farti abilitare.


  • Super User

    Ma perchè mai vuoi far ciò? Comunque lui sarà in grado di arrivare al database volendolo, le credenziali di accesso sono in chiaro nel codice... E se le parametrizzi lo stesso può richiamarle...


  • User Attivo

    Ciao Number Nine, puoi spostare il file wp-config.php fuori dalla root e assegnare all'utente ftp il diritto di accedere alla root (var/www/html o public_html per intenderci). Wordpress è impostato in modo da controllare automaticamente la presenza del file sia nella root che nel livello superiore.

    Teju ha comunque ragione in quanto i dati di accesso al database sono disponibili all'interno dell'oggetto globale $wpdb.

    Un ulteriore precauzione può essere quella di limitare i privilegi dell'utente che si collega al db.
    Se spieghi meglio da chi vuoi proteggere il db poi riesco a risponderti meglio. La tua preoccupazione è il proprietario del sito o un potenziale hacker?


  • User

    Grazie a tutti per le vostre risposte e scusatemi per la lunga assenza.

    In realtà il problema è di ordine pratico: può succedere di dover lavorare per un cliente che ha già il proprio hosting e nome a dominio, e voi decidete di rifare il sito con Wordpress senza cambiare hosting, perché il cliente non è d'accordo. Può anche capitare che il cliente non vi paghi, e voi decidiate di interrompere il servizio. Se lavorate sul suo hosting lui ha tutto del sito: i file e i contenuti del database.

    Io avevo pensato di rendergli irraggiungibile il database fino a che il sito non fosse completamente pagato, utilizzando un altro mio DB su un mio hosting. Una volta pagato il lavoro avrei spostato il DB su un suo DB, sul suo hosting.

    Forse ora che ho spiegato la questione in termini pratici, potete capire e giustificare la mia richiesta.

    Tra l'altro non tutti gli hosting permettono di accedere a un livello superiore alla root, riferendomi all'ultimo messaggio di Cardy.

    So che in caso di database su sistemi Windows / ASPX è possibile isolare il database, anche se non ne conosco la prassi perché non mi occupo di .aspx.

    Sarebbe semplice chiedere o imporre al cliente di spostare il dominio su un nostro server, ma come dicevo non sempre il cliente è d'accordo. Quindi si pone la necessità di trovare un'altra soluzione.


  • User Attivo

    Nel caso specifico di Wordpress, la soluzione di avere il database su un altro server può non essere una gran mossa, in quanto la logica applicativa è contenuta nel file functions.php del tema e/o nei plugin per cui il cliente potrebbe trovarsi, nel peggiore dei casi senza tabelle nel db (se invece le tabelle del db vengono create da codice, il cliente può ricrearsi tutto da solo).
    Considera che certi provider non consentono connessioni da/verso database esterni alla loro rete per cui dovresti verficare di volta in volta questa possibilità.

    Un altra soluzione (da testare) è offuscare il codice php (quello da te realizzato) con programmi quali ioncube. In questo modo il codice sorgente non è in chiaro e in più si può creare un file di licenza con scadenza. Ad es. se il cliente ha 30 giorni di tempo per pagare potresti impostare la licenza a 30giorni... Su WP non ho ancora testato personalmente questa soluzione, mentre con script php generici, funziona tutto benissimo 😉
    Per il funzionamento di ioncube è necessario che sul server sia installato il modulo specifico. In molti hosting è già presente come default.