Filtra la ricerca ...
Categorie

Hardening WordPress: checklist essenziale (sicurezza pratica per siti e WooCommerce)

Ciao e benvenuto. Se hai bisogno di chiarimenti sul codice, lascia un commento (no WhatsApp); ricorda però che non fornisco assistenza gratuita sugli articoli che ho scritto nè personalizzo il codice in modo gratuito, quindi se la tua richiesta va oltre il semplice "aiutino", se vuoi mi chiedi una consulenza a pagamento nella pagina contatti. Grazie della comprensione. Alessio

Mettere in sicurezza WordPress (e WooCommerce) non richiede magie: serve una checklist chiara, eseguita con costanza. Qui trovi le azioni prioritarie per ridurre superfici d’attacco, prevenire malware e proteggere dati e vendite.

TL;DR (priorità massime)

  • Aggiornamenti regolari (core, tema, plugin) con test su staging.
  • 2FA per admin/editor e ruoli minimi per tutti.
  • Backup off-site con ripristino verificato e retention differenziata.
  • Firewall applicativo (WAF), blocco bot e rate-limit sul login.
  • Blocca PHP in /uploads, permessi file corretti, DISALLOW_FILE_EDIT.
  • Cache/CDN configurati senza esporre admin, REST e webhook.

1) Aggiornamenti e inventario

  • Mantieni WordPress, tema e plugin aggiornati. Elimina plugin/temi non usati.
  • Usa uno staging per testare update (specie WooCommerce e gateway).

2) Utenti, ruoli e MFA

  • Rimuovi l’utente admin generico, crea account nominativi.
  • Applica il principio del minimo privilegio (Editor, Shop Manager, ecc.).
  • Abilita 2FA per amministratori e redattori; applica policy password robuste.
  • Revoca accessi inutilizzati e Application Passwords non più necessarie.

3) Login, brute force e XML-RPC

  • Imposta rate limit e blocco IP su login e wp-login.php.
  • Valuta la rinomina del percorso di login (misura di “stealth”, non sicurezza assoluta).
  • Disabilita o limita XML-RPC (consenti solo funzioni necessarie o IP allowlist).
  • Aggiungi reCAPTCHA/hCaptcha su login/moduli se subisci bot.

4) File system e permessi

  • Permessi consigliati: 644 file, 755 cartelle; proprietà coerenti con l’utente del web server.
  • Blocca l’esecuzione PHP in /wp-content/uploads/ e cache temporanee.

Reimpostare i permessi di WordPress: guida pratica

I permessi corretti riducono i rischi di esecuzione non autorizzata e gli errori “Permesso negato”. Regola d’oro: cartelle 755, file 644, wp-config.php 640 (o 600 dove possibile). Mai 777.

Schema consigliato
Cartelle: 755 • File: 644wp-config.php: 640/600.htaccess (solo Apache): 644

A) FTP (FileZilla/WinSCP) – semplice e sicuro

  1. Connettiti alla root del sito (es. public_html).
  2. Cartelle: seleziona tutte le directory → tasto destro Permessi → valore 755Ricorsivo: solo directory.
  3. File: seleziona tutti i file → Permessi → valore 644Ricorsivo: solo file.
  4. Imposta manualmente: wp-config.php 640/600, .htaccess 644.

B) cPanel (Terminal/SSH) – veloce e completo

cPanel → Terminal / SSH Access, poi esegui dalla docroot (es. ~/public_html):

Tip: se incontri problemi di scrittura, chiedi all’hosting di riallineare l’ownership (utente del tuo account).

C) Plesk

Metodo SSH (consigliato): Plesk → HostingAccesso SSH, poi:

Metodo File Manager (GUI): seleziona gruppi di cartelle → Cambia autorizzazioni → 755; gruppi di file → 644; poi imposta a parte wp-config.php 640/600 e .htaccess 644.
Su Plesk Windows vedrai ACL (permessi per utente/gruppo) invece dei numeri: mantieni lettura/scrittura solo all’utente dell’app, niente esecuzione dove non serve.

D) WP-CLI: cosa puoi fare

WP-CLI non cambia i permessi in massa, ma con SSH puoi combinare i comandi shell sopra. Per singoli file:

Verifiche finali (2 minuti)

  • Carica un’immagine in Media e salva un articolo: se fallisce, controlla wp-content/uploads (cartelle 755, file 644).
  • Su Nginx non esiste .htaccess: ignora quel file, gestisci le regole nel vhost.
  • Plugin di cache/backup: verifica che possano scrivere nelle proprie directory (cartelle 755).

Bloccare l’esecuzione di PHP in /uploads (extra sicurezza)

Apache (.htaccess):

Nginx:

5) wp-config.php: impostazioni di hardening

6) Firewall applicativo e protezione a livello edge

  • Attiva un WAF (plugin o edge/CDN) con regole per SQLi/XSS, file upload e brute force.
  • Imposta rate limiting per endpoint sensibili (login, XML-RPC, API REST pubbliche).
  • Blocca user-agent malevoli e scansioni automatiche.

7) Backup e ripristino

  • Backup 3-2-1 (almeno una copia off-site in Cloud UE), con restore test periodico.
  • Retention differenziata (es. 7/30/90 giorni) e cifratura dei backup.

8) Monitoraggio e malware scan

  • Abilita file change detection (monitor modifiche in wp-content e core).
  • Scan ricorrenti di malware e controlli su .htaccess/web.config.
  • Allarmi su errori 5xx, picchi di spam, redirect sospetti.

9) WooCommerce: attenzioni extra

  • Verifica webhook (pagamenti, Subscriptions) e proteggili con firma/allowlist IP.
  • Checkout sempre fuori cache; escludi wc-ajax=* e cookie carrello.
  • Riduci plugin superflui in checkout e limita script non essenziali (migliora sicurezza e INP).

10) HTTP Security Headers (avanzato)

  • HSTS (solo dopo pieno supporto HTTPS), Referrer-Policy, X-Content-Type-Options.
  • Content-Security-Policy (CSP) graduale per mitigare XSS e script terzi invasivi.

Checklist rapida stampabile

  • Aggiornamenti e rimozione bloat (plugin/temi inutilizzati)
  • 2FA + ruoli minimi + password policy
  • WAF + rate limit login/XML-RPC
  • Permessi 644/755 e PHP bloccato in /uploads
  • wp-config: DISALLOW_FILE_EDIT, FORCE_SSL_ADMIN, SALTS aggiornate
  • Backup off-site + restore test trimestrale
  • Monitor file/log + scan malware ricorrente
  • Regole cache sicure per WooCommerce + webhook protetti

Vuoi un hardening “senza sorprese”? Posso applicare questa checklist, impostare WAF e backup off-site e rilasciare un report con priorità e prove di mitigazione.

Richiedi una messa in sicurezza

FAQ

Rinominare l’URL di login basta a proteggere il sito?

No: è solo “security by obscurity”. Serve insieme a 2FA, rate limiting, WAF e password robuste.

Posso disattivare completamente XML-RPC?

Sì, se non usi app/integrazioni che lo richiedono. In alternativa, limita per IP o disabilita metodi non necessari.

Il blocco di PHP in uploads può causare problemi?

Solo se carichi script lato server (pratica sconsigliata). Per i normali media non comporta alcun rischio.

Potrebbe interessarti anche ...

Hai bisogno di una consulenza, lo sviluppo di un plugin o vuoi incrementare le performance del tuo sito ?

Se vuoi postare codice usa codeshare.io
Se vuoi postare uno screeshot usa postimages.org ed inserisci l'url nel commento.

Lascia un commento


Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.