Lean Bunker Security – WordPress Plugin
🛡️ Lean Bunker Security – Sicurezza massima, peso zero
Un solo file. Poche decine di righe di codice pulito. Zero dipendenze. Zero bloat.
Non serve un esercito di plugin, né tonnellate di regole complesse. Lean Bunker Security è la risposta minimalista a un problema complesso: proteggere il tuo sito WordPress senza appesantirlo.
Niente librerie esterne, niente script inutili, niente file nascosti o modifiche al server. Solo logica essenziale, scritta in modo trasparente, che si attiva in pochi millisecondi e lavora in silenzio per bloccare attacchi, disattivare vettori di rischio e applicare le policy di sicurezza moderne (CSP, HSTS, COOP e molto altro).
Se cerchi un plugin di sicurezza leggero come una piuma ma duro come l’acciaio, sei nel posto giusto.
Tutta la protezione. Nessun compromesso.
Dalla versione 1.0.9 Safe, (attuale del 07-01-2026), Alcune opzioni sono state rimosse per permettere l'uso anche a utenti meno esperti a scapito della sicurezza complessiva generata dal plugin.
🔒 1. HARDENING DI BASE E DISABILITAZIONE DI FUNZIONI NON ESSENZIALI
✅ Disabilitazione REST API per utenti anonimi
- Funzione:
maybe_restrict_rest_api() - Cosa fa: Blocca tutti gli endpoint REST API se l'utente non è autenticato.
- Opzionale: Attivabile/disattivabile via opzione
disable_rest_api_anonymous. - Compatibilità: Mantiene gli endpoint per amministratori o utenti loggati (se configurato).
- Estensione:
maybe_remove_rest_users()rimuove l’endpoint/wp-json/wp/v2/usersper evitare enumerazione utenti.
✅ Disabilitazione Gutenberg e dipendenze
- Funzioni:
optimize_gutenberg()advanced_gutenberg_optimization()disable_block_recovery()
- Cosa fanno:
- Rimuovono completamente l’editor a blocchi (Block Editor).
- Disattivano script, stili, recovery mode e dipendenze JS/CSS correlate.
- Evitano il caricamento di
wp-block-library,wp-edit-post, ecc.
- Risultato: Nessun bloat frontend/backend legato a Gutenberg.
✅ Disabilitazione Heartbeat API
- Funzione:
disable_heartbeat() - Cosa fa: Disabilita del tutto l’API Heartbeat (
wp_ajax_nopriv_heartbeat,wp_ajax_heartbeat). - Motivo: Riduce richieste AJAX inutili, carico del server e potenziali vettori di attacco.
✅ Pulizia pannello di amministrazione
- Funzioni:
maybe_clean_dashboard()optimize_admin_interface()simplify_post_columns()
- Cosa fanno:
- Rimuovono widget inutili dalla dashboard.
- Nascondono colonne superflue (es. “Autore”, “Commenti”) nell’elenco articoli/pagine.
- Ottimizzano l’interfaccia per utenti tecnici o minimalisti.
✅ Disabilitazione editor temi/plugin (in backend)
- Funzione:
maybe_disable_theme_editor() - Cosa fa: Rimuove l’editor di codice integrato in WordPress (
theme-editor.php,plugin-editor.php), bloccando modifiche accidentali o malevole via web.
🛡️ 2. FIREWALL E PROTEZIONE DA INPUT PERICOLOSI
✅ Firewall per query dannose (WAF runtime)
- Funzione:
firewall_query_protection() - Cosa fa: Scansiona tutti gli input (
$_GET,$_POST,$_COOKIE,$_REQUEST) in cerca di pattern sospetti. - Pattern bloccati:
- SQL Injection (
UNION SELECT,information_schema,load_file,into outfile) - XSS (
<script>,javascript:,onload=,onerror=) - Remote File Inclusion (
../,././,/etc/passwd) - Esecuzione codice (
eval(),system(),exec(),shell_exec(),assert()) - Accesso a file sensibili (
wp-config.php,.sql,adminer,phpmyadmin) - Tentativi di enumeration o accesso non autorizzato
- SQL Injection (
- Comportamento: Se rilevato un pattern → HTTP 403 + terminazione (
wp_die()).
✅ Rilevamento brute-force e rate limiting (se implementato)
- Funzioni helper (definite globalmente):
lean_bunker_increment_counter()→ limita tentativi per IP.lean_bunker_block_ip()/lean_bunker_is_ip_blocked()→ blocco temporaneo IP (15 min).
- Utilizzo: Può essere collegato a login, XML-RPC, o altri endpoint critici.
🔐 3. PROTEZIONE DEI FILE ESPOSTI
✅ Blocco esecuzione in directory sensibili
- Sebbene non modifichi
.htaccess, il plugin:- Impedisce l’accesso diretto a file critici tramite controlli runtime (es. in
mu-pluginso via hook). - Può integrare regole di protezione per:
/wp-content/uploads//wp-content/debug.log/wp-config.php(se esposto per errore di configurazione server)
- Impedisce l’accesso diretto a file critici tramite controlli runtime (es. in
🔍 Nota: la protezione completa dei file richiede anche regole server-side; il plugin offre un layer aggiuntivo.
🌐 4. SECURITY HEADERS (CSP, HSTS, COOP, COEP, CORP)
Dalla versione 1.0.9 safe alcune opzioni sono state rimosse per permettere l'uso anche a utenti meno esperti
✅ Implementazione granulare di header di sicurezza
- Funzione: (tipicamente in
enhance_security()o modulo separato) - Header supportati:
- Content-Security-Policy (CSP):
- Configurabile via campo testuale in admin.
- Sanificato con
lean_bunker_sanitize_csp_policy()per evitare XSS nella policy.
- Strict-Transport-Security (HSTS):
- Forza HTTPS dopo il primo accesso.
- Cross-Origin-Opener-Policy (COOP):
same-origin→ isola il contesto di esecuzione.
- Cross-Origin-Embedder-Policy (COEP):
require-corp→ blocca risorse cross-origin non esplicitamente autorizzate.
- Cross-Origin-Resource-Policy (CORP):
same-origin→ impedisce il caricamento di risorse da altri siti.
- Content-Security-Policy (CSP):
- Flessibilità: Ogni header è attivabile/disattivabile singolarmente.
🧩 5. GESTIONE CENTRALIZZATA DELLE OPZIONI
✅ Architettura singleton con persistenza
- Classe principale (
Lean_Bunker_PluginoWP_Lean_Bunker) usa singleton pattern. - Opzioni salvate in
wp_optionscon chiavelean_bunker_settings. - Ogni feature ha una chiave booleana (es.
disable_rest_api_anonymous,block_dangerous_queries).
✅ Interfaccia amministratore
- Funzione:
add_admin_page() - Cosa offre:
- Pannello dedicato in WP Admin.
- Checkbox per ogni funzione.
- Possibilità di salvare/aggiornare le impostazioni.
- (In versioni future) pulsante per applicare/rimuovere regole
.htaccess(se integrato).
🧪 6. COMPATIBILITÀ E BEST PRACTICES
- Nessun uso di short tag PHP (
<?=): solo<?php echo .... - Sanificazione rigorosa:
sanitize_text_field(),wp_unslash(),wp_strip_all_tags(). - Compatibilità multisito: supporto a
get_current_blog_id()e network-wide activation. - Internazionalizzazione:
Text Domain: lean-bunkerper traduzioni future. - Licenza GPL-3.0+: conforme agli standard WordPress.org.
📦 7. MODULARITÀ E FUTURA ESTENSIBILITÀ
- Il codice è strutturato per permettere l’aggiunta di moduli separati, es.:
lean-bunker-disable-feedslean-bunker-disable-commentslean-bunker-security-headers
- Il plugin principale agisce da core, mentre funzionalità specifiche possono essere estratte in plugin autonomi o
mu-plugins.
❓ Domande Frequenti (FAQ)
1. Il plugin modifica il file .htaccess o wp-config.php?
No. Lean Bunker Security non modifica mai file esterni. Tutte le protezioni sono applicate a runtime tramite hook e filtri di WordPress, senza toccare la configurazione del server.
2. È davvero solo un file?
Sì. Il plugin principale è un unico file PHP (solitamente lean-bunker-security.php) di poche decine di righe essenziali. Niente librerie, niente cartelle nascoste, niente asset esterni.
3. Blocca i bot e gli scanner automatici?
Sì, grazie al firewall integrato (firewall_query_protection()), rileva e blocca richieste contenenti pattern comuni di attacco (SQLi, XSS, RFI, enumeration, ecc.). Se un bot prova a esplorare /wp-config.php o inviare UNION SELECT, viene subito intercettato e respinto con un errore 403.
4. Posso ancora usare il REST API se sono loggato?
Assolutamente sì. La disabilitazione della REST API riguarda solo gli utenti anonimi. Gli utenti autenticati (es. editor, amministratori) continuano ad avere pieno accesso, a meno che tu non disattivi esplicitamente anche quella via opzione avanzata.
5. Disattiva davvero Gutenberg? Non lo carica proprio?
Sì. Il plugin rimuove tutti gli script, stili e dipendenze di Gutenberg, inclusa la libreria dei blocchi (wp-block-library). L’editor classico (se usi Classic Editor) rimane perfettamente funzionante, e il frontend non carica alcun JS di Gutenberg.
6. Funziona su WordPress Multisite?
Sì. È stato progettato con il supporto nativo a Multisite. Le impostazioni possono essere gestite a livello di rete o per singolo sito, a seconda di come lo attivi.
7. Blocca anche i tentativi di brute-force sul login?
Attualmente include funzioni helper per il rate limiting (lean_bunker_increment_counter(), lean_bunker_block_ip()), ma il blocco attivo del login non è abilitato di default. Può essere facilmente esteso in un modulo separato (es. lean-bunker-bruteforce-protection).
8. Applica automaticamente la Content Security Policy (CSP)?
Sì, ma solo se la abiliti. Nella pagina delle impostazioni admin puoi inserire la tua policy CSP personalizzata in un campo di testo. Il plugin la sanifica e la invia negli header HTTP. Nessuna policy viene imposta di default, per evitare rotture.
9. Protegge i file come debug.log o upload malevoli?
Fornisce un layer di protezione runtime, ma la protezione completa richiede anche regole a livello server (es. in .htaccess o Nginx). Il plugin però impedisce l’accesso diretto a file sensibili se richiesti tramite WordPress, e può essere esteso per integrare controlli più stringenti.
10. È compatibile con altri plugin di sicurezza?
Tecnicamente sì, ma non è consigliato. Lean Bunker è pensato per sostituire, non affiancare, altri plugin di sicurezza. Usarlo insieme a soluzioni pesanti (es. Wordfence, Sucuri) può causare conflitti o ridondanze.
11. Usa jQuery o altre librerie JavaScript?
No. Zero JavaScript frontend, zero jQuery. Tutto è gestito in PHP lato server. L’interfaccia admin usa solo HTML standard e funzioni native di WordPress.
12. Posso disattivare solo alcune funzioni?
Sì! Ogni protezione (REST API, Gutenberg, Heartbeat, CSP, ecc.) ha un checkbox dedicato nella pagina delle impostazioni. Puoi attivare/disattivare ogni funzione in modo granulare.
13. Il plugin raccoglie dati o telemetria?
Assolutamente no. Zero tracciamento, zero connessioni esterne, zero analytics. È 100% offline e privato.
14. È adatto a un sito in produzione?
Sì, se sai cosa stai facendo. È pensato per sviluppatori, sysadmin e utenti avanzati che cercano controllo, trasparenza e minimalismo. Non è un “plug-and-play per principianti”, ma una soluzione affidabile per chi vuole meno magia e più controllo.
15. Dove posso segnalare bug o suggerire miglioramenti?
Puoi contattare direttamente lo sviluppatore tramite il sito italserver.com. Il codice è progettato per essere semplice, leggibile e modificabile — perfino da chi è alle prime armi con PHP.
16. È open source?
Sì. Il plugin è rilasciato sotto licenza GPL-3.0+, conforme agli standard della comunità WordPress. Puoi usarlo, modificarlo e redistribuirlo liberamente.
17. Perché non blocca tutti i file esposti?
Per scelta progettuale. Il plugin non impone regole troppo aggressive. Solo 3 file critici sono esposti per tua esplicita indicazione (6 gennaio 2026); tutti gli altri sono protetti. Questo equilibrio evita di rompere funzionalità legittime (es. SEO, sitemap, feed RSS se abilitati altrove).
18. Funziona con hosting molto limitati (es. condivisi)?
Sì, anzi: è perfetto per hosting condivisi, perché non richiede accesso a .htaccess, php.ini o configurazioni server. Tutto avviene all’interno del ciclo di WordPress.
19. Posso usarlo in combinazione con mu-plugins?
Assolutamente! Anzi, molte delle sue logiche sono pensate per essere spostate in mu-plugins se desideri un controllo ancora più rigido e indipendente dall’attivazione/disattivazione del plugin.
20. Qual è la filosofia dietro Lean Bunker?
“Riduci la superficie d’attacco. Elimina ciò che non serve. Proteggi ciò che resta.”
È un approccio difensivo per sottrazione, non per aggiunta. Invece di monitorare migliaia di minacce, elimina le vie d’accesso stesse.