1. Non impegnarsi nel controllo della versione:
* mai Archivia le credenziali del database direttamente all'interno del sistema di controllo della versione (come GIT). Ciò rende le tue informazioni sensibili accessibili al pubblico se il repository è compromesso.
2. Memorizza le credenziali al di fuori del Web Root:
* Crea una directory separata al di fuori della root web: Questa directory dovrebbe essere al di fuori della directory `public_html` o` www 'in cui sono archiviati i file del tuo sito Web. Ciò impedisce l'accesso diretto al file delle credenziali tramite un browser Web.
* Esempio:
`` `Bash
MKDIR/PATH/TO/TURI/PROGETTO/CONFIG
`` `
3. Usa le variabili di ambiente:
* Memorizza le credenziali nelle variabili di ambiente: Questo è l'approccio più raccomandato per la sicurezza e le migliori pratiche.
* Apache:
`` `ApacheConf
Setenv database_host "localhost"
Setenv database_name "your_database_name"
Setenv Database_User "your_username"
Setenv Database_Password "Your_Password"
`` `
* nginx:
`` `nginx
env database_host "localhost";
env database_name "your_database_name";
env database_user "your_username";
env database_password "your_password";
`` `
* php:
`` `php
$ host =getenv ('database_host');
$ name =getenv ('database_name');
$ user =getenv ('database_user');
$ pass =getenv ('database_password');
`` `
* Utilizzare un file di configurazione dedicato: Archivia le impostazioni del database all'interno di un file di configurazione separato al di fuori del root Web.
* Esempio: `/path/to/your/project/config/database.php`
* Accedi alle variabili di ambiente in php:`$ _env ['database_host']`, `$ _env ['database_name']`, ecc.
4. Accesso alle credenziali da PHP:
* usa `getenv ()` funzione: Accedi alle variabili di ambiente in modo sicuro utilizzando la funzione `getenv ()`.
* Esempio:
`` `php
$ host =getenv ('database_host');
$ name =getenv ('database_name');
$ user =getenv ('database_user');
$ pass =getenv ('database_password');
`` `
5. Permessi di file protetti:
* limitare l'accesso al file: Assicurarsi che il file delle impostazioni del database e la sua directory contenente abbiano le autorizzazioni minime necessarie.
* usa `chown` e` chmod`:
`` `Bash
Chown www-data:www-data /path/to/your/project/config/database.php
Chmod 600 /path/to/your/project/config/database.php
`` `
Questo imposta il proprietario e il gruppo su `www-data` e limita l'accesso al file solo al proprietario (leggi e scrittura).
6. Usa .htaccess o .htpasswd per l'autenticazione:
* limitare l'accesso alla directory di configurazione: Utilizzare i file `.htaccess` o` .htpasswd` per proteggere la directory contenente il file delle impostazioni del database.
* Esempio:
`` `ApacheConf
AuthType Basic
Authname "Credenziali del database"
Authuserfile /path/to/your/project/config/.htpasswd
Richiedono l'utente valido
`` `
7. Proteggere il tuo server:
* Mantieni il tuo server sicuro: Aggiorna regolarmente il software del sistema operativo e del server Web per patch di sicurezza delle vulnerabilità.
* Usa password forti: Scegli password forti per gli account del database e utilizza password univoche per diverse applicazioni.
* Abilita autenticazione a due fattori: Implementare l'autenticazione a due fattori per gli account del database per aggiungere un ulteriore livello di sicurezza.
8. Sicurezza del database:
* Utilizzare un sistema di gestione del database (DBMS) con forti funzionalità di sicurezza: Scegli un DBMS che offre funzionalità come l'autenticazione sicura, il controllo degli accessi basato sui ruoli e la crittografia dei dati.
* Audit e revisione regolarmente privilegi di database: Assicurarsi che solo gli utenti autorizzati abbiano le autorizzazioni necessarie per accedere e modificare il database.
9. Test di sicurezza:
* Eseguire audit di sicurezza regolari: Condurre test di penetrazione e valutazioni di vulnerabilità per identificare e affrontare potenziali debolezze di sicurezza.
* Segui le linee guida OWASP (Open Web Application Security Project): Adere ai raccomandazioni OWASP per pratiche di sviluppo sicure.
10. Prendi in considerazione alternative sicure:
* Servizi di gestione segreti: Utilizza servizi di gestione segreta dedicati come Hashicorp Vault o AWS Secrets Manager per gestire in modo sicuro le credenziali del database. Questi servizi offrono capacità di crittografia, controllo degli accessi e di revisione.
Riepilogo delle migliori pratiche:
* Non archiviare mai le credenziali del database nel controllo della versione.
* Memorizza le credenziali al di fuori del Web Root.
* Usa le variabili di ambiente o un file di configurazione dedicato.
* limitare le autorizzazioni dei file e utilizzare `.htaccess` o` .htpasswd` per l'autenticazione.
* Proteggi il tuo server e il tuo database.
* Eseguire audit e test di sicurezza regolari.
* Considera l'utilizzo dei servizi di gestione segreta dedicati.
Implementando queste misure di sicurezza, è possibile ridurre significativamente il rischio di accesso non autorizzato al database e proteggere le tue informazioni sensibili.
Programmazione © www.354353.com