Come prevenire le SQL Injection? (Guida completa 2020) - MalCare

Pubblicato: 2023-04-19

Sei preoccupato per gli attacchi SQL injection sul tuo sito web? Se stai leggendo questo, potresti già conoscere le conseguenze dell'attacco. In questo post imparerai i modi semplici per prevenire le iniezioni SQL .

Le iniezioni SQL possono consentire a un hacker di dirottare il tuo sito WordPress e accederne al controllo. Da lì, possono reindirizzare il tuo traffico, rubare dati riservati, iniettare link spam, manipolare i risultati di ricerca con caratteri giapponesi e visualizzare annunci di prodotti illegali. Questo tipo di attacco può causare danni irreparabili al tuo sito e alla tua attività.

Fortunatamente, le iniezioni SQL sono prevenibili se si adottano le giuste misure di sicurezza. In questa guida, affrontiamo le iniezioni SQL e discutiamo in dettaglio le misure efficaci per prevenirle e salvaguardare il tuo sito Web WordPress.

TL; DR: puoi prevenire le iniezioni SQL sul tuo sito WordPress utilizzando un plug-in di sicurezza affidabile. Installa MalCare e il plug-in eseguirà automaticamente la scansione e difenderà il tuo sito da tali attacchi.

[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”Riflessioni finali”]

Cosa sono gli attacchi SQL Injection?

Tutti i siti WordPress di solito hanno aree di input che consentono a un visitatore di inserire informazioni. Potrebbe trattarsi di una barra di ricerca del sito, di un modulo di contatto o di un modulo di accesso .

In un modulo di contatto, un visitatore inserirà i propri dati come nome, numero di telefono ed e-mail e li invierà al tuo sito.

modulo di contatto vulnerabile per attacco sql injection

Questi dati vengono inviati al database MySQL del tuo sito web. Viene elaborato e memorizzato qui.

Ora, questi campi di input richiedono configurazioni adeguate per garantire che i dati vengano verificati e disinfettati prima che entrino nel database. Ad esempio, una vulnerabilità del modulo di contatto è che dovrebbe accettare solo lettere e numeri. Idealmente non dovrebbe accettare simboli. Ora, se il tuo sito accetta dati tramite questo modulo, l'hacker può trarne vantaggio e inserire query SQL dannose come:

 txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work? txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?

Gli hacker prendono di mira i siti Web che presentano misure di sicurezza deboli o vulnerabilità che ne facilitano l'accesso. Nella nostra esperienza, plug-in e temi spesso sviluppano vulnerabilità e gli hacker ne sono ben consapevoli. Si aggirano costantemente in Internet alla ricerca di siti che utilizzano plugin e temi vulnerabili.

Per spiegare questo, useremo uno scenario di esempio. Supponiamo che il signor A stia utilizzando un plug-in "Modulo di contatto" per alimentare un modulo nella pagina dei contatti del suo sito web. Supponiamo che sia stata trovata una vulnerabilità di SQL injection in questo plugin nella versione 2.4 e che gli sviluppatori l'abbiano corretta e rilasciato una versione aggiornata 2.4.1.

Al momento del rilascio, gli sviluppatori rivelano il motivo dell'aggiornamento rendendo di dominio pubblico la falla di sicurezza. Ciò significa che gli hacker sanno che è presente una falla di sicurezza nella versione 2.4 del plug-in Modulo di contatto.

Ora, Mr.X ritarda l'installazione dell'aggiornamento per alcune settimane perché semplicemente non c'è tempo per eseguire l'aggiornamento. È qui che le cose vanno male.

Una volta che gli hacker scoprono le vulnerabilità, eseguono programmi o utilizzano scanner di vulnerabilità che eseguono la scansione di Internet e trovano siti Web che utilizzano una particolare versione di un plug-in/tema.

In questo caso, cercheranno i siti Web utilizzando il modulo di contatto 2.4. Una volta trovato il sito, conosceranno l'esatta vulnerabilità del web che rende molto più facile l'hacking. In questo caso, sfrutteranno il difetto di SQL injection e irromperanno nel tuo sito.

Tipi di SQL Injection

Gli hacker utilizzano due tipi di SQL injection:

1. Iniezione SQL classica: quando visiti un sito Web, il tuo browser (come Chrome o Mozilla) invia una richiesta HTTP al server del sito Web per visualizzare il contenuto. Il server Web recupera il contenuto dal database del sito e lo invia al browser. È così che puoi visualizzare il front-end di un sito web.

Ora, il database del tuo sito Web contiene tutti i tipi di dati, inclusi dati riservati come dettagli del cliente, informazioni di pagamento, nomi utente e password. Il tuo database dovrebbe essere configurato per rilasciare solo i dati front-end. Tutti gli altri dati riservati dovrebbero essere salvaguardati. Ma se questi controlli di sicurezza delle applicazioni non sono presenti, gli hacker ne approfittano.

In un classico attacco SQL injection, gli hacker inviano richieste dannose al tuo database recuperando i dati nel loro browser. Ma usano stringhe di query per richiedere informazioni sensibili come le credenziali di accesso del tuo sito web. Se non hai protetto queste informazioni, verranno inviate all'hacker. In questo modo, possono mettere le mani sui tuoi dati di accesso e introdursi nel tuo sito. Gli aggressori possono anche utilizzare istruzioni preparate come metodo per eseguire ripetutamente istruzioni di database uguali o simili con elevata efficienza.

2. Blind SQL injection: in questo caso, l'hacker inietta script dannosi attraverso i campi di input sul tuo sito web. Una volta che viene archiviato nel tuo database, lo eseguono per fare ogni tipo di danno come cambiare il contenuto del tuo sito o persino eliminare l'intero database. In questo caso, possono utilizzare gli script dannosi anche per ottenere i privilegi di amministratore.

Entrambi gli scenari possono avere un impatto devastante sul tuo sito web e sulla tua attività. Fortunatamente, puoi prevenire tali attacchi adottando le giuste misure di sicurezza e convalida dell'input sul tuo sito web.

Passaggi per prevenire gli attacchi SQL Injection

Per prevenire gli attacchi SQL injection, è necessario eseguire una valutazione della sicurezza del tuo sito web. Ecco due tipi di misure che puoi adottare per prevenire gli attacchi SQL: alcune sono semplici e altre sono complesse e tecniche.

Misure preventive facili

  1. Installa un plug-in di sicurezza
  2. Usa solo temi e plugin affidabili
  3. Elimina qualsiasi software piratato dal tuo sito
  4. Elimina temi e plugin inattivi
  5. Aggiorna regolarmente il tuo sito web

Misure tecniche di prevenzione

  1. Modificare il nome del database predefinito
  2. Controlla le voci del campo e l'invio dei dati
  3. Rafforza il tuo sito Web WordPress

Iniziamo.

Semplici misure preventive contro gli attacchi SQL Injection

1. Installa un plug-in di sicurezza

L'attivazione di un plug-in per la sicurezza del sito Web è il primo passo che devi compiere per proteggere il tuo sito Web. I plug-in di sicurezza di WordPress monitoreranno il tuo sito e impediranno agli hacker di irrompere.

Ci sono molti plugin tra cui scegliere, ma in base a ciò che ha da offrire, scegliamo MalCare. Il plug-in installerà automaticamente un firewall per applicazioni Web per difendere il tuo sito dagli attacchi. I tentativi di hacking vengono identificati e bloccati.

Successivamente, lo scanner di sicurezza del plug-in eseguirà una scansione completa del tuo sito ogni giorno. In caso di comportamenti sospetti o attività dannose sul tuo sito, verrai avvisato immediatamente. Puoi intervenire e riparare il tuo sito all'istante con MalCare prima che Google abbia la possibilità di inserire il tuo sito nella blacklist o che il tuo provider di hosting decida di sospendere il tuo sito.

2. Aggiorna regolarmente il tuo sito web

Come accennato in precedenza nel nostro esempio di SQL injection, quando gli sviluppatori trovano difetti di sicurezza nel loro software, li correggono e rilasciano una nuova versione che contiene la patch di sicurezza. Devi eseguire l'aggiornamento alla nuova versione per rimuovere il difetto dal tuo sito.

aggiornamento del core di wordpress

Ti suggeriamo di dedicare del tempo una volta alla settimana per aggiornare l'installazione principale, i temi e i plug-in di WordPress.

Tuttavia, se noti che è stato rilasciato un aggiornamento della sicurezza, installalo immediatamente.

3. Usa solo temi e plugin affidabili

WordPress è la piattaforma più popolare per creare siti Web e questo è in parte dovuto ai plugin e ai temi che lo rendono facile e conveniente. Ma tra la pletora di temi e plugin disponibili, devi scegliere con attenzione. Controlla i dettagli del plugin come il numero di installazioni attive, la data dell'ultimo aggiornamento e la versione con cui è stato testato.

dettagli del plug-in

Ti consigliamo di scaricarli dal repository di WordPress. Per qualsiasi altro tema e plugin, dovresti fare una ricerca adeguata per verificare che possano essere considerati affidabili. Questo perché alcuni temi e plug-in di terze parti possono essere creati in modo dannoso dagli hacker. Potrebbe anche essere solo mal codificato, il che lo apre a vulnerabilità.

4. Elimina qualsiasi software piratato sul tuo sito

I temi e i plug-in piratati o annullati sono allettanti. Ti dà accesso a funzionalità premium gratuitamente. Ma sfortunatamente, questi di solito vengono forniti con malware precaricato. Il software piratato è un modo semplice per gli hacker di distribuire il loro malware.

Quando lo installi, il malware si attiva e infetta il tuo sito. È meglio stare alla larga da tale software.

5. Elimina temi e plug-in inattivi

È comune installare un plug-in e dimenticarsene completamente per anni. Ma questa abitudine può esporre il tuo sito agli hacker. Più plugin e temi hai installato sul tuo sito, maggiori sono le possibilità che appaiano vulnerabilità e che gli hacker ne traggano vantaggio.

Ti suggeriamo di conservare solo i plugin e i temi che utilizzi. Elimina il resto e rendi il tuo sito più sicuro. Scansiona regolarmente anche i tuoi temi e plugin esistenti.

Misure tecniche di prevenzione

Queste misure potrebbero richiedere un po' più di conoscenza del funzionamento interno di WordPress. Tuttavia, al giorno d'oggi, c'è un plugin per tutto. Quindi non devi preoccuparti delle complessità coinvolte nell'attuazione di queste misure. Lo rendiamo semplice!

1. Modificare il nome predefinito della tabella del database

Il tuo sito WordPress è composto da file e da un database. Nel tuo database, ci sono 11 tabelle per impostazione predefinita. Ogni tabella contiene vari dati e configurazioni. Queste tabelle sono denominate con un prefisso 'wp_'. Quindi il nome delle tabelle può essere wp_options, wp_users, wp_meta. Ottieni la deriva.

modificare i nomi delle tabelle di database predefinite per impedire l'iniezione di sql

Questi nomi sono gli stessi su tutti i siti WordPress e gli hacker lo sanno. Gli hacker sanno quale tabella memorizza quale tipo di dati. Quando gli hacker inseriscono script dannosi sul tuo sito Web, sanno dove verrebbe archiviato lo script. Utilizzando un metodo semplice, possono eseguire comandi SQL per eseguire attività dannose.

Ma se cambi il nome della tabella, può scoraggiare gli hacker dal trovare dove si trovano gli script. Quindi, quando gli hacker tentano di inserire codici SQL nelle tabelle del database, non saranno in grado di capire il nome della tabella.

Puoi farlo usando un plugin come Change Table Prefix o Brozzme. Basta installarne uno sul tuo sito e seguire i passaggi.

Puoi anche farlo manualmente modificando il tuo file wp-config. Un avvertimento: un leggero passo falso qui potrebbe portare a errori del database e malfunzionamenti del sito. Fai un backup prima di procedere.

  • Vai al tuo account di hosting > cPanel > File Manager.
  • Qui, accedi alla cartella public_html e fai clic con il pulsante destro del mouse sul file wp-config.
  • Seleziona Modifica e trova il codice seguente
    “$table_prefix = 'wp_';”
  • Sostituiscilo con -
    "$table_prefix = 'test_';"

Puoi scegliere qualsiasi prefisso a tua scelta. Qui abbiamo scelto 'test_' come nuovo nome del database. Una volta terminato, gli hacker non saranno in grado di individuare i propri comandi SQL.

2. Controllare le voci del campo e l'invio dei dati

Puoi configurare tutti i campi di input sul tuo sito web per accettare solo determinati tipi di dati. Ad esempio, un campo nome dovrebbe consentire solo voci alfabetiche (lettere) perché non c'è motivo per inserire caratteri numerici qui. Allo stesso modo, un campo del numero di contatto dovrebbe accettare solo numeri.

È possibile utilizzare la funzione sanitize_text_field() che disinfetta l'input dell'utente. Questa convalida dell'input assicura che le voci non corrette o semplicemente pericolose possano essere bloccate.

3. Rafforza il tuo sito Web WordPress

Questo è uno dei passaggi più importanti che puoi intraprendere per proteggere il tuo sito WordPress dagli attacchi SQL injection. Che cos'è l'indurimento del sito web?

Un sito Web WordPress ti offre molte funzioni per aiutarti a gestire il sito. Tuttavia, la maggior parte delle persone non utilizza molte di queste funzioni. WordPress.org consiglia di disabilitarne o rimuoverne alcuni se non li utilizzi. Ciò ridurrà le possibilità di attacchi poiché ci sono meno elementi da provare per gli hacker!

Alcune misure di rafforzamento di WordPress sono:

  1. Disattivazione dell'editor di file
  2. Disabilitazione delle installazioni di plugin o temi
  3. Implementazione dell'autenticazione a 2 fattori
  4. Limitazione dei tentativi di accesso
  5. Modifica delle chiavi e dei sali di sicurezza di WordPress
  6. Blocco dell'esecuzione di PHP in cartelle sconosciute

Per implementare queste misure, puoi utilizzare un plug-in come MalCare che ti consente di farlo con pochi clic.

indurimento del malessere

Oppure puoi implementarlo manualmente seguendo la nostra Guida su WordPress Hardening.

Questo ci porta alla fine della prevenzione degli attacchi SQL injection. Se hai implementato le misure che abbiamo discusso in questo cheat sheet di SQL injection, il tuo sito sarà al sicuro

[ss_click_to_tweet tweet=”Gli attacchi SQL injection possono essere prevenuti! Usa questa guida per implementare le giuste misure di sicurezza sul tuo sito WordPress.” contenuto=”” stile=”predefinito”]

Pensieri finali

Prevenire è davvero meglio che curare. Gli attacchi SQL injection possono causare stress inutili e gravi oneri finanziari.

La maggior parte delle misure di cui abbiamo discusso oggi può essere facilmente implementata con l'uso di plugin. Quindi non devi preoccuparti se non sei esperto di tecnologia! Puoi ancora proteggerti!

Insieme all'implementazione di queste misure, consigliamo vivamente di attivare MalCare sul tuo sito. Il suo firewall difenderà attivamente il tuo sito web dagli attacchi. Esamina il tuo sito ogni giorno per verificare la presenza di tentativi di hacking e malware sul tuo sito.

Puoi pensarlo come la tua guardia di sicurezza del tuo sito web che monitora il tuo sito e tiene fuori i cattivi. Puoi stare tranquillo sapendo che il tuo sito è protetto.

Previeni gli attacchi hacker con il nostro plug-in di sicurezza MalCare!