Le 12 migliori pratiche di sicurezza per PHP

Pubblicato: 2021-08-14

La sicurezza è un argomento importante per tutti gli sviluppatori di software, ma gli sviluppatori PHP devono affrontare alcune sfide uniche. In questo post del blog, esploreremo le 12 migliori pratiche di sicurezza per PHP, insieme a come puoi implementarle nel tuo codice per aiutare a mantenere il tuo sito web sicuro e protetto. Puoi sempre utilizzare i professionisti di WebCitz per gestire le tue esigenze di programmazione PHP!


1. Aggiorna regolarmente la tua versione PHP

Assicurati che la tua versione PHP sia aggiornata per ridurre al minimo il rischio di vulnerabilità di sicurezza. L'applicazione di patch risolve spesso i bug noti, quindi è importante sfruttarli quando vengono rilasciati.

Gli hacker hanno già iniziato a sfruttare gli ultimi difetti di PHP. Quelli di voi con versioni precedenti saranno vulnerabili alle loro intrusioni a meno che non si modifichi la configurazione!

Puoi provare la versione di anteprima, ma i consulenti per la sicurezza avvertono le aziende di evitare le versioni di anteprima di un nuovo software perché potrebbero avere ancora difetti di sicurezza sconosciuti.

Logo PHP

2. Non esporre dati sensibili a Internet tramite una connessione non crittografata

Molti siti Web sono ancora vulnerabili perché i loro sviluppatori hanno commesso un errore nell'esporre le credenziali del database o del file system su Internet pubblico utilizzando un protocollo FTP non protetto, account di posta elettronica senza protezione SSL, ecc.

Proteggi questi file e cartelle crittografandoli prima di trasmetterli su qualsiasi connessione di rete non crittografata con TLS/SSL.

Grafica blocco di sicurezza

3. Proteggersi dagli attacchi di SQL injection

Una vulnerabilità SQL (Structured Query Language) Injection si verifica quando l'input dell'utente viene utilizzato all'interno di una query senza un'adeguata convalida del tipo e dell'intento, il che compromette l'affidabilità dei risultati mostrati dalle seguenti query unite dalle stringhe inviate.

Sembra complicato, ma tutto ciò che devi sapere è che questo attacco può esporre i tuoi dati aziendali e le informazioni sensibili.

Il modo migliore per proteggersi dagli attacchi di SQL injection è proteggere l'input, impedendo agli hacker di iniettare il proprio codice nel sito Web tramite un campo modulo o un breakout box. Si desidera disinfettare tutti i valori inviati dall'utente prima di inserirli in una query SQL, in questo modo: $input = filter_var($_POST['field'], FILTER_SANITIZE_STRING); if(!empty($input)){ echo “Hai inserito: “.$input.”

“; }else{echo 'Inserisci qualcosa';} . Nota come abbiamo usato empty() per assicurarci che non ci siano campi vuoti.

Serrature di sicurezza in fila tutte blu oltre a una rossa al centro e sbloccata

4. Assicurati di archiviare i dati sensibili in modo sicuro

Quando si tratta di proteggere le password e le informazioni della carta di credito, non c'è spazio per errori: la posta in gioco è troppo alta se un hacker ottiene l'accesso a questi file o database contenenti queste informazioni!

Per ridurre al minimo il rischio che si verifichi un tale attacco, utilizzare sempre un algoritmo di crittografia forte quando si archiviano dati sensibili nel database, preferibilmente uno con crittografia AES a 128 bit come SHA512_RSA.

È disponibile anche un software che semplifica la gestione dei database crittografati: MySQL Encryption Utilities (MEU). È importante notare che MEU crittografa solo i campi di testo nei database MySQL, ma è abbastanza buono per la maggior parte dei casi d'uso.

persona che lavora su un server rack

5. Non riutilizzare le password

Riutilizzare la stessa password più e più volte è un modo sicuro per violare il tuo account il prima possibile! Se stai utilizzando le funzioni integrate di PHP per generare stringhe di testo casuali (come rand()), ricorda che sono solo di breve durata, quindi assicurati di cambiarle almeno ogni pochi mesi.

Vuoi che includa lettere maiuscole, minuscole, numeri e simboli. Inoltre, non fa male avere regole più complesse che circondano anche quando deve essere generata una nuova stringa, ad esempio una volta alla settimana o dopo tre tentativi di accesso con una password errata. C'è anche un software disponibile che può fare i conti per te!

Campi di accesso nome utente e password

6. Assicurati che le tue applicazioni non siano vulnerabili agli attacchi XSS

XSS (Cross-Site Scripting) è un attacco in cui viene iniettato codice dannoso in un sito Web e quindi eseguito sul browser di un visitatore. Questo può spesso portare al furto di cookie o al dirottamento della sessione, che consente agli hacker di accedere a tutti i tuoi dati sensibili senza dover inserire le proprie credenziali, come password o numeri di carta di credito.

Questa vulnerabilità può essere sfruttata utilizzando la convalida del modulo JavaScript sulle pagine Web, in modo che qualsiasi input immesso dai visitatori venga eseguito automaticamente tramite l'aggiornamento della pagina, visualizzando collegamenti ipertestuali con contenuto attivo come immagini al loro interno e aggiungendo parametri forniti dall'utente su URL dinamici come '? conto=123' ecc.

hacker seduto alla scrivania

7. Proteggiti dagli attacchi CSRF

CSRF (Cross-Site Request Forgery) è un tipo di attacco in cui vengono trasmessi comandi non autorizzati dal sito dell'attaccante alla tua applicazione web. Ciò può portare al dirottamento della sessione o al furto di cookie, tra le altre cose.

Può sembrare difficile a prima vista, ma tutto ciò che devi fare è fornire un token aggiuntivo che necessita di verifica per qualsiasi azione in cui potrebbero essere esposte informazioni sensibili, come l'accesso all'account di un altro utente: questo assicurerà che non ce ne sia solo uno singolo punto di vulnerabilità e assicurati che gli account automatici non vengano utilizzati sul tuo sito web.

persona che hackera

8. Non dimenticare le patch regolari!

Spesso è ovvio, ma dovresti stare al passo con la correzione di nuove vulnerabilità quando vengono rilasciate dal tuo provider di sistema o fornitore di software.

Non sai mai quale falla di sicurezza ha trovato qualcun altro ma di cui non sei a conoscenza, ed è meglio rimanere informati piuttosto che avere violato il tuo sito web!

persona che hackera con la parola sicurezza dietro di sé

9. Non lasciare la modalità di debug abilitata negli ambienti di produzione

Il codice di debug ha spesso la capacità di abilitare cose come la modifica di file remoti (usando fopen()) e la generazione di query SQL non elaborate tramite mysql_query().

Questi sono ottimi se si desidera generare tracce di stack complete quando si verificano errori, ma apre importanti rischi per la sicurezza sul sito Web di produzione. La disabilitazione di queste funzioni e la rimozione di eventuali istanze in cui vengono utilizzate ti farà risparmiare un sacco di tempo anche quando si tratta di correggere i bug!

grafica di una lente di ingrandimento su un bug che si trova sullo schermo di un computer

10. Controlla il firewall per le porte aperte

Potresti essere tentato di premere "Avanti" ogni volta che Windows ha terminato l'installazione degli aggiornamenti, ma non dimenticare di controllare quali servizi sono in esecuzione e se tutto è configurato correttamente o meno, incluso l'aggiornamento dei firewall, se necessario.

Aiuterà a tenere fuori i visitatori indesiderati se gli hacker non riescono a trovare un punto di ingresso nel tuo sistema attraverso il quale possano eseguire il loro attacco con la stessa facilità.

persona che guarda lo schermo di un computer con sopra un codice

11. Non utilizzare "admin" come nome account

Se vuoi proteggerti dal fatto che qualcun altro acceda al tuo sito indovinando le password, prova a utilizzare un altro nome utente, come "admin" o qualcos'altro che non sia così ovvio.

Se qualcuno tenta di accedere al tuo account, sarà molto più difficile indovinare la password ed è anche più difficile per gli hacker sfruttare metodi di forza bruta se stai utilizzando un nome utente insolito!

tasto su una tastiera con un'impronta digitale come tasto

12. Rimani aggiornato con le nuove vulnerabilità

All'inizio può sembrare scoraggiante, ma rimanere informati su quali falle di sicurezza trovano altre persone ti aiuterà a mantenere il tuo sistema al sicuro in caso di perdite.

Tuttavia, tenere traccia di tutti questi aggiornamenti può essere difficile: fortunatamente ora sono disponibili molti strumenti che rendono questo compito più semplice che mai. Uno di questi strumenti è chiamato "Supporto a lungo termine Debian", progettato per supportare più versioni del sistema operativo e tutti i tipi di software, inclusi i server Web con PHP.

persona che sorride alla telecamera mentre usa un computer

Conclusione

In conclusione, queste sono solo alcune delle migliori pratiche di sicurezza che puoi applicare al tuo sito web per mantenerlo al sicuro. Non è sempre facile, ma se ti prendi del tempo per dedicarti allo sforzo, sarai ricompensato con una presenza online che ha meno probabilità di essere hackerata!