[WP] Mettiamo in sicurezza WordPress
venerdì, 10 Ago 2018 - Gestione WordPress
Primi passi elementari
Dispositivi e reti
- accedi alle aree amministrative del tuo hosting e di WordPress solo da dispositivi affidabili e da reti sicure
Hosting
- scegli un hosting affidabile
- scegli un hosting che ti metta sempre a disposizione anche l’ultima versione di Apache, MySQL (o MariaDB) e PHP
Database
- nome del database: se l’hosting ti permette di sceglierlo chiamalo in modo non scontato (che non si possa indovinare facilmente)
- utente del database: se l’hosting ti permette di sceglierlo chiamalo in modo non scontato
- password dell’utente del database: deve essere una password MOLTO robusta
- privilegi dati all’utente sul database, aspetto da approfondire, per ora ok a ALL
- prefissi tabelle del database: cambia wp_ in qualcosa di non scontato
File e cartelle
- Non superare questo livello di permessi (*nix system):
- file: 644
- directory: 755
WordPress
- utente amministratore di WordPress
- nome utente amministratore di WordPress diverso da admin
- nome pubblico dell’utente amministratore di WordPress diverso dal nickname
- NON utilizzare l’utente amministratore di WordPress per pubblicare
- cambia l’id all’utente amministratore di WordPress (*modifica SQL in database*)
- fai scegliere agli utenti WordPress password MOLTO robuste e falle cambiare almeno ogni 6 mesi
- editor e autori: nome pubblico diverso dal nickname
- dai agli utenti il minimo livello di autorizzazioni
- disabilita la registrazione di utenti se non necessaria
- rimuovi plugin e temi non utilizzati
- impostazioni più restrittive per i commenti o disabilitali se non ti interessano; plugin anti-spam
- disabilita pingback e trackback se non ti interessano
- tieni aggiornati WordPress, temi, plugin
- se qualche plugin o tema non viene aggiornato da un po’ verifica che il suo sviluppo sia ancora attivo
- procedura di backup automatici; verifiche periodiche della procedura di recupero; almeno un backup esterno all’hosting
- rinomina wp-admin e wp-login.php
- nascondi la versione di WordPress
- nel file functions.php:
remove_action('wp_head', 'wp_generator'); function remove_wp_version_rss() { return ''; } add_filter('the_generator','remove_wp_version_rss');
- rinomina o cancella readme.txt e wp-admin/install.php
- nel file functions.php:
- wp-config.php
- dopo l’installazione rinnova le SALT KEYs
- forza l’accesso https per l’area del backend:
define('FORCE_SSL_ADMIN', true);
(* l’hosting deve supportare TLS per default, anche se non attivato dall’utente *) - disabilita la possibilità di modificare temi e plugin dal backend:
define('DISALLOW_FILE_EDIT', true);
- metti i parametri del database fuori dal file e richiamali
- .htaccess
-
order allow,deny deny from all
- proteggi wp-login.php con password (da provare, dipende dall’hosting in uso)
- nega la possibilità di navigare tra le directory o inserisci in OGNI cartella un index.php vuoto
-
- HTTPS
- metti sotto crittografia tutti i form del tuo sito
- PLUGIN
- iThemes Security (possibilità di rinominare url di accesso al backend; limitare tentativi di accesso -Local Brute Force Protection-; nascondere messaggio di errore in caso di tentativo di accesso errato)
- WordFence (possibilità di nascondere messaggio di errore in caso di tentativo di accesso errato, …)
- Sucuri Security (monitoraggio dei tentativi di accesso, monitoraggio delle modifiche, …)
- BBQ: Block Bad Queries
- CAPTCHA al login
- autenticazione a due fattori al login