Tutorial WordPress affidabili, quando ne hai più bisogno.
Guida per principianti a WordPress
WPB Cup
25 Milioni+
Siti web che utilizzano i nostri plugin
16+
Anni di esperienza con WordPress
3000+
Tutorial WordPress di esperti

Come prevenire attacchi di SQL injection su WordPress (7 consigli)

Mettere in sicurezza il tuo sito WordPress contro gli attacchi di SQL injection è necessario per proteggere i tuoi dati e mantenere la fiducia dei tuoi visitatori.

L'SQL injection è una tecnica comune utilizzata dagli hacker per attaccare il tuo database. Una volta fatto ciò, gli hacker possono leggere i tuoi dati sensibili, modificarli e prendere il controllo del tuo intero database.

Per proteggere il tuo sito web da questa minaccia, è fondamentale implementare solide misure di sicurezza sul tuo sito web.

Noi di WPBeginner prendiamo molto sul serio la sicurezza e abbiamo fatto di tutto per proteggere il nostro sito da hacker e malware. Molte delle pratiche di sicurezza che raccomandiamo contro gli attacchi di SQL injection sono metodi che abbiamo utilizzato con successo noi stessi.

In questo articolo, condivideremo alcuni consigli pratici per prevenire gli attacchi di SQL injection in WordPress, passo dopo passo.

Prevenire gli attacchi di SQL Injection su WordPress

Perché prevenire gli attacchi di SQL injection su WordPress?

SQL sta per Structured Query Language, che è un linguaggio di programmazione che comunica con il database del tuo sito WordPress. Senza questa funzionalità, il tuo sito non può generare alcun contenuto dinamico.

Tuttavia, input non autorizzati dall'utente, software obsoleto o la divulgazione di informazioni sensibili possono causare vulnerabilità di sicurezza e rendere facile per gli hacker eseguire attacchi di SQL injection.

Questo attacco prende di mira il tuo server di database e aggiunge codice o istruzioni dannose al tuo SQL. Una volta fatto ciò, gli hacker possono utilizzare informazioni sensibili memorizzate nel tuo database come dati utente per furto d'identità, furto di account, frodi finanziarie e altro ancora.

Possono anche modificare voci del database o autorizzazioni dell'account ed eseguire attacchi DDoS, rendendo difficile per gli utenti effettivi visitare il tuo sito web.

Questo può danneggiare la fiducia dei clienti, influire negativamente sull'esperienza utente e diminuire il traffico del sito web, il che sarà dannoso per la crescita della tua piccola impresa.

Detto questo, diamo un'occhiata ad alcuni suggerimenti pratici che possono prevenire gli attacchi di SQL injection in WordPress. Ecco una rapida panoramica di ciò di cui parleremo in questo articolo:

  1. Esegui Aggiornamenti Regolari del Sito e Usa un Firewall
  2. Nascondi la Tua Versione di WordPress
  3. Cambia il prefisso del database di WordPress
  4. Valida i Dati dell'Utente
  5. Limita l'Accesso e le Autorizzazioni dei Ruoli Utente
  6. Crea Messaggi di Errore Personalizzati per il Database
  7. Rimuovi Funzionalità Inutili del Database

Nota: Prima di apportare qualsiasi modifica al tuo database per misure preventive, ti consigliamo di crearne un backup. In questo modo, se qualcosa va storto, puoi utilizzare il backup per risolverlo. Per maggiori dettagli, consulta il nostro tutorial su come creare un backup manuale del database di WordPress.

1. Esegui Aggiornamenti Regolari del Sito e Usa un Firewall

Un modo efficace per prevenire gli attacchi di SQL injection è aggiornare regolarmente il tuo sito WordPress all'ultima versione. Questi aggiornamenti correggono spesso vulnerabilità di sicurezza, inclusi problemi del software del database, rendendo difficile per gli hacker attaccare il tuo sito.

Se stai utilizzando una versione obsoleta di WordPress, ti consigliamo di abilitare gli aggiornamenti automatici per la versione più recente visitando la pagina Dashboard » Aggiornamenti.

Qui, fai semplicemente clic sul link ‘Abilita aggiornamenti automatici per tutte le nuove versioni di WordPress’. Ora, tutti gli aggiornamenti principali verranno installati sul tuo sito al momento del rilascio.

Installa gli aggiornamenti di WordPress

Per ulteriori informazioni, potresti consultare la nostra guida per principianti su come aggiornare WordPress in sicurezza.

Una volta fatto ciò, puoi anche aggiungere un firewall per una maggiore sicurezza. Questa funzione agisce come uno scudo tra il tuo sito e il traffico in entrata e blocca le minacce comuni alla sicurezza, inclusi gli attacchi SQL, prima che raggiungano il tuo sito web.

Se gestisci una piccola attività online, ti consigliamo Sucuri, che è una delle migliori opzioni software firewall per WordPress sul mercato. Offre un firewall a livello di applicazione, prevenzione dei tentativi di accesso forzato, nonché servizi di rimozione di malware e blacklist, rendendola un'ottima scelta.

Come il firewall del sito web blocca gli attacchi

Abbiamo esperienza diretta con lo strumento. Ci ha persino aiutato a bloccare 450.000 attacchi WordPress sul nostro sito web in passato.

Detto questo, Sucuri potrebbe non essere abbastanza potente per siti più grandi e ad alto traffico. In tal caso, potresti considerare Cloudflare, che può offrirti funzionalità di sicurezza e un'impressionante rete di distribuzione dei contenuti (CDN).

Se non sei sicuro di quale opzione sia la migliore per il tuo sito web, consulta il nostro articolo su perché siamo passati da Sucuri a Cloudflare o il nostro confronto tra Sucuri e Cloudflare.

2. Nascondi la tua versione di WordPress

Per impostazione predefinita, WordPress visualizza il numero di versione corrente del software che utilizzi sul tuo sito web. Ad esempio, se stai utilizzando WordPress 6.4, questa versione verrà visualizzata sul tuo sito per il tracciamento.

Tuttavia, la visibilità pubblica del numero di versione può creare minacce alla sicurezza e rendere più facile per gli hacker eseguire attacchi di iniezione SQL su WordPress.

Rimuovi il numero di versione di WordPress

Questo perché ogni versione di WordPress ha le proprie vulnerabilità uniche che gli aggressori possono sfruttare dopo aver scoperto la tua versione. Ciò consentirà loro di aggiungere frammenti di codice dannoso al tuo sito tramite campi di input vulnerabili.

Puoi rimuovere facilmente il numero di versione dal tuo sito aggiungendo il seguente frammento di codice al tuo file functions.php.

add_filter('the_generator', '__return_empty_string');

Una volta fatto ciò, gli hacker non saranno in grado di trovare il tuo numero di versione di WordPress tramite scanner automatici o in qualsiasi altro modo.

Nota: Tieni presente che un piccolo errore durante l'aggiunta di codice può rendere il tuo sito web inaccessibile. Ecco perché consigliamo WPCode. È il miglior plugin per frammenti di codice che rende l'aggiunta di codice personalizzato al tuo sito super sicura e facile.

Per maggiori dettagli, consulta il nostro tutorial su come rimuovere correttamente il numero di versione di WordPress.

3. Modifica il prefisso del database di WordPress

Per impostazione predefinita, WordPress aggiunge il prefisso wp_ a tutti i tuoi file di database, il che rende facile per gli hacker pianificare un attacco prendendo di mira il prefisso.

Il modo più semplice per prevenire gli attacchi di SQL injection è cambiare il prefisso predefinito del database con qualcosa di unico che gli hacker non saranno in grado di indovinare.

Puoi farlo facilmente collegando il tuo sito web tramite FTP. Successivamente, apri il file wp-config.php e trova la riga per cambiare $table_prefix. Quindi, puoi cambiarla dal semplice wp_ predefinito a qualcos'altro come questo: wp_a123456_.

$table_prefix  = 'wp_a123456_';

Successivamente, devi visitare il cPanel del tuo account di web hosting. Per questo tutorial, utilizzeremo Bluehost. Tuttavia, il tuo cPanel potrebbe apparire leggermente diverso a seconda della tua società di web hosting.

Qui, passa alla scheda 'Avanzate' e fai clic sul pulsante 'Gestisci' accanto alla sezione 'PHPMyAdmin'.

Fai clic sul pulsante Gestisci accanto alla sezione PHPMyAdmin

Questo aprirà una nuova pagina in cui dovrai selezionare il nome del tuo database dalla colonna di sinistra e passare alla scheda 'SQL' dall'alto.

Dopodiché, puoi aggiungere la seguente query SQL nella casella di testo.

Query SQL in phpMyAdmin

Tieni solo presente di cambiare il prefisso del database con quello che hai scelto durante la modifica del file wp-config.php.

RENAME table `wp_comments` TO `wp_a123456_comments`;
RENAME table `wp_links` TO `wp_a123456_links`;
RENAME table `wp_options` TO `wp_a123456_options`;
RENAME table `wp_postmeta` TO `wp_a123456_postmeta`;
RENAME table `wp_RENAME table `wp_commentmeta` TO `wp_a123456_commentmeta`;
posts` TO `wp_a123456_posts`;
RENAME table `wp_terms` TO `wp_a123456_terms`;
RENAME table `wp_termmeta` TO `wp_a123456_termmeta`;
RENAME table `wp_term_relationships` TO `wp_a123456_term_relationships`;
RENAME table `wp_term_taxonomy` TO `wp_a123456_term_taxonomy`;
RENAME table `wp_usermeta` TO `wp_a123456_usermeta`;
RENAME table `wp_users` TO `wp_a123456_users`;

Per ulteriori istruzioni, puoi consultare il nostro tutorial su come cambiare il prefisso del database di WordPress per migliorare la sicurezza.

4. Valida i dati dell'utente

Gli hacker iniettano solitamente attacchi SQL sul tuo sito web utilizzando campi per l'inserimento di dati utente, come sezioni di commenti o campi del modulo di contatto.

Ecco perché è importante convalidare tutti i dati inviati sul tuo blog WordPress. Ciò significa che i dati dell'utente non verranno inviati sul tuo sito se non seguono un formato specifico.

Ad esempio, un utente non sarà in grado di inviare il proprio modulo se il campo dell'indirizzo email non contiene il simbolo '@'. Aggiungendo questa convalida alla maggior parte dei campi del tuo modulo, puoi prevenire attacchi di iniezione SQL.

Valida il tuo campo email

Per fare ciò, avrai bisogno di Formidable Forms, che è un plugin avanzato per la creazione di moduli. Viene fornito con un'opzione 'Formato maschera di input' dove puoi aggiungere il formato che gli utenti devono seguire per inviare i dati del campo del modulo.

Puoi aggiungere un formato specifico per numeri di telefono o campi di testo singoli.

Aggiungi formato numero di telefono

Se non vuoi convalidare i campi del tuo modulo, ti consigliamo WPForms perché è il miglior plugin per moduli di contatto che offre protezione completa dallo spam e supporto per Google reCAPTCHA.

Ti consente inoltre di aggiungere menu a discesa e caselle di controllo ai tuoi moduli, rendendo difficile per gli hacker aggiungere dati dannosi.

wpforms

Per maggiori dettagli, consulta il nostro tutorial su come creare un modulo di contatto sicuro in WordPress.

5. Limita l'accesso e le autorizzazioni dei ruoli utente

Un altro consiglio per prevenire attacchi di iniezione SQL su WordPress è limitare l'accesso degli utenti al tuo sito web.

Ad esempio, se hai un blog multi-autore, avrai vari autori insieme a abbonati e amministratori. In tal caso, puoi migliorare la sicurezza del sito limitando l'accesso completo di amministratore solo all'amministratore.

Puoi limitare tutti gli altri ruoli utente a funzioni specifiche che dovranno svolgere per svolgere il proprio lavoro. Ciò ridurrà l'accesso degli utenti al tuo database e preverrà attacchi di iniezione SQL.

Puoi farlo con il plugin gratuito Remove Dashboard Access. Dopo l'attivazione, visita semplicemente la pagina Impostazioni » Accesso alla dashboard, dove puoi decidere quali ruoli utente hanno accesso alla dashboard.

Limita le impostazioni di accesso alla dashboard

Se vuoi limitare gli utenti in base alle loro capacità, puoi consultare il nostro tutorial su come aggiungere o rimuovere capacità ai ruoli utente in WordPress.

Allo stesso modo, puoi anche limitare gli autori ai propri post nella tua area di amministrazione per una maggiore sicurezza.

6. Crea messaggi di errore personalizzati per il database

A volte i tuoi utenti potrebbero incontrare un errore del database sul tuo sito web, che può visualizzare informazioni importanti sul tuo database, rendendolo vulnerabile agli attacchi di SQL injection.

In tal caso, si consiglia di creare un messaggio di errore personalizzato per il database che verrà visualizzato agli utenti quando incontrano questo errore comune. Per fare ciò, dovrai copiare e incollare il seguente contenuto in un'applicazione di blocco note e salvare il file come 'db-error.php'.

<?php // custom WordPress database error page
   
  header('HTTP/1.1 503 Service Temporarily Unavailable');
  header('Status: 503 Service Temporarily Unavailable');
  header('Retry-After: 600'); // 1 hour = 3600 seconds
   
  // If you wish to email yourself upon an error
  // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching");
   
?>
   
<!DOCTYPE HTML>
<html>
<head>
<title>Database Error</title>
<style>
body { padding: 20px; background: red; color: white; font-size: 60px; }
</style>
</head>
<body>
  You got problems.
</body>

Successivamente, collega il tuo sito a un programma FTP e carica il file che hai appena creato nella directory /wp-content/ del tuo sito.

Ora, quando gli utenti incontrano un errore del database sul tuo sito web, vedranno un messaggio di errore che li informa del problema senza rivelare alcuna informazione sensibile.

Pagina di anteprima personalizzata degli errori del database

Inoltre, il titolo "Errore del database" verrà visualizzato nella scheda del browser web.

Per maggiori dettagli, consulta il nostro tutorial su come aggiungere una pagina di errore del database personalizzata in WordPress.

7. Rimuovere funzionalità non necessarie del database

Per prevenire attacchi di SQL injection, dovresti anche provare a rimuovere tutte le funzionalità e i file del database di cui non hai bisogno sul tuo sito web.

Ad esempio, puoi eliminare tabelle non necessarie, bozze o commenti non approvati che possono rendere il tuo database suscettibile agli hacker.

Per rimuovere funzionalità non necessarie del database, consigliamo WP-Optimize. È un fantastico plugin che rimuove tabelle non necessarie, revisioni dei post, bozze, commenti cestinati, post eliminati, pingback, metadati dei post e molto altro.

Rimuovi funzionalità non necessarie del database

Rimuove tutti i file di cui non hai bisogno e ottimizza il tuo database per renderlo più sicuro e veloce. Per maggiori dettagli, consulta la nostra guida per principianti su come ottimizzare il tuo database WordPress.

Speriamo che questo articolo ti abbia aiutato a imparare come prevenire gli attacchi di SQL injection su WordPress. Potresti anche voler consultare la nostra guida per principianti su come controllare gli aggiornamenti di sicurezza di WordPress o la nostra guida definitiva alla sicurezza di WordPress.

Se ti è piaciuto questo articolo, iscriviti al nostro canale YouTube per tutorial video su WordPress. Puoi anche trovarci su Twitter e Facebook.

Dichiarazione: Il nostro contenuto è supportato dai lettori. Ciò significa che se fai clic su alcuni dei nostri link, potremmo guadagnare una commissione. Vedi come è finanziato WPBeginner, perché è importante e come puoi supportarci. Ecco il nostro processo editoriale.

Il Toolkit WordPress Definitivo

Ottieni l'accesso GRATUITO al nostro toolkit - una raccolta di prodotti e risorse relative a WordPress che ogni professionista dovrebbe avere!

Interazioni del lettore

3 CommentsLeave a Reply

  1. Questo è nuovo per me che posso nascondere facilmente la versione di WordPress, il che impedirà agli hacker di indovinare le vulnerabilità basate sulle versioni di WordPress e sui loro exploit.
    Ottimi consigli per proteggere il sito web dall'iniezione SQL.
    Implementerò questi trucchi per rendere il mio sito web a prova di proiettile per qualsiasi falla di sicurezza.

  2. Per me, nascondere la versione di WordPress è una novità. Ogni versione di WordPress presenta le proprie vulnerabilità, quindi nascondere il numero di versione lascerà gli hacker all'oscuro su quale versione di WordPress viene utilizzata, per non parlare dello sfruttamento delle vulnerabilità correlate, grazie per l'avviso. Penso anche che se stai sviluppando un plugin che raccoglie l'input degli utenti, sia saggio eseguire l'escape degli input dell'utente (dopo la normale validazione) che verranno inseriti nel database.

  3. La sicurezza di WordPress è per me l'alfa e l'omega. Correlato a ciò è SQL, a cui non ho mai prestato molta attenzione. Grazie per questo elenco di ottimi consigli. Controllerò subito il mio blog per vedere cosa posso migliorare secondo il tuo elenco. Almeno proverò a nascondere la versione e così via.

Lascia una risposta

Grazie per aver scelto di lasciare un commento. Tieni presente che tutti i commenti sono moderati secondo la nostra politica sui commenti, e il tuo indirizzo email NON verrà pubblicato. Si prega di NON utilizzare parole chiave nel campo del nome. Avviamo una conversazione personale e significativa.