Incontrare errori mod_security, come " 403 Forbidden " o "406 Not Acceptable" mentre si lavora sul proprio sito WordPress, può essere frustrante.
Spesso questi errori non indicano un problema con il codice del tuo sito web o un malfunzionamento di un plugin, ma piuttosto un livello di sicurezza troppo zelante sul tuo server web chiamato ModSecurity .
Questa guida fornisce approfondimenti sulla diagnosi e la risoluzione di questi problemi, garantendo che il tuo sito rimanga sicuro e funzioni correttamente.
TL;DR: Guida rapida alla risoluzione degli errori mod_security in WordPress
- Gli errori mod_security si verificano solitamente quando il firewall del server blocca l'attività legittima di WordPress, non perché il sito non funziona.
- Controllare sempre prima i log del server e identificare l'ID esatto della regola prima di apportare modifiche. In questo modo si evitano inutili rischi per la sicurezza.
- La soluzione più sicura è chiedere al tuo provider di hosting di aggiungere alla whitelist l'ID regola specifico anziché disattivare completamente ModSecurity.
- Utilizza backup e un sito di staging per testare le correzioni in modo sicuro, quindi applica la rimozione mirata delle regole, come SecRuleRemoveById, per mantenere il firewall attivo e sicuro.
Errori mod_security di WordPress: panoramica e cause principali
ModSecurity è un firewall sofisticato, ma non ha la consapevolezza contestuale di un amministratore umano.
Per risolvere il problema, devi prima capire di cosa si tratta e perché segnala le attività legittime di WordPress come una minaccia.

Che cos'è il progetto ModSecurity e come funziona come firewall per applicazioni Web?
Web Application Firewall (WAF) open source che viene eseguito direttamente sul tuo server web (in genere Apache, Nginx o IIS).
Si interpone tra Internet e il tuo sito web, esaminando ogni richiesta HTTP
La sua funzione principale è filtrare il traffico in base a regole predefinite. Il set di regole WAF più diffuso e utilizzato dagli host è l'OWASP CRS (Core Rule Set).
Se la richiesta di un visitatore corrisponde a un modello di attacco noto, come un di iniezione SQL o un bot dannoso, il motore ModSecurity blocca immediatamente la richiesta.
Questa protezione proattiva è fondamentale per difendere il tuo ambiente di hosting dalle minacce più comuni e dagli attacchi HTTP.
Mantieni il tuo sito WordPress sicuro e senza errori
Lascia che i nostri esperti SeaCare si occupino di manutenzione, sicurezza e prestazioni, così potrai concentrarti sulla tua attività e stimolare la crescita.
Errori comuni di mod_security nei siti WordPress
Quando ModSecurity blocca una richiesta, raramente te lo comunica esplicitamente. Invece, visualizzerai i codici di errore standard del server nel tuo browser:
- 403 Forbidden: il server ha compreso la richiesta ma si rifiuta di soddisfarla. Questo è l'errore più comune quando viene attivata una regola di sicurezza.
- 406 Non accettabile: si verifica quando la risorsa richiesta non riesce a generare una risposta corrispondente alle intestazioni inviate nella richiesta (spesso attivate da intestazioni specifiche del browser o dati dei cookie).
- 500 Errore interno del server : un file .htaccess configurato in modo errato che tenta di controllare ModSecurity può causare l'arresto anomalo del sito.
- Loop di accesso: gli utenti di WordPress potrebbero non riuscire ad accedere e venire reindirizzati costantemente alla pagina di accesso senza un messaggio di errore, se una regola segnala il processo di autenticazione.
Perché mod_security genera falsi positivi in WordPress?
ModSecurity si basa sulla logica di corrispondenza dei pattern. Non "sa" che sei l'amministratore; vede solo codice e stringhe di testo. Questo porta spesso a falsi positivi in cui le azioni sicure vengono bloccate:
- Parole chiave SQL sospette: se scrivi un post di blog sulla gestione del database e utilizzi termini come DROP TABLE o SELECT * nel testo, ModSecurity potrebbe interpretarlo come un attacco di iniezione SQL e bloccare l'azione "Pubblica".
- Dati dei plugin: i nuovi plugin e i plugin SEO spesso inviano dati complessi (JSON o XML) al server. Se questi dati contengono caratteri speciali o strutture che assomigliano a un exploit, il firewall li bloccherà.
- Falsi positivi: attività amministrative legittime, come il salvataggio di grandi strutture di menu o moduli di contatto con campi specifici, possono inavvertitamente corrispondere a una regola rigorosa volta a impedire lo scripting tra siti (XSS).
Diagnosticare gli errori mod_security in WordPress prima di applicare le correzioni
Disattivare ciecamente le funzionalità di sicurezza è pericoloso. Prima di applicare qualsiasi correzione, è necessario confermare che ModSecurity sia effettivamente il colpevole, diagnosticando correttamente l'errore.

Cattura il messaggio di errore esatto del browser e l'URL non riuscito
Inizia osservando attentamente l'errore.
- Attiva l'errore: esegui l'azione che causa il blocco (ad esempio, salva una pagina specifica).
- Controlla l'URL: guarda la barra degli indirizzi. L'errore si verifica su wp-admin/post.php o su un URL specifico del plugin?
- Nota il codice: è un errore 403, 406 o 500?
Se l'errore scompare quando interrompi quell'azione specifica (ad esempio, rimuovendo uno specifico frammento di codice dal contenuto del tuo post), hai una forte indicazione che la causa è un filtro dei contenuti.
Accedi e analizza i log di ModSecurity nel pannello di controllo dell'hosting o SSH
Per identificare la causa specifica, è necessario esaminare i log. Molti provider di hosting consentono di visualizzarli tramite il pannello di controllo o SSH.
- cPanel: accedi e vai alla sezione "Metriche" o "Sicurezza". Cerca " Registri errori " o "Registro ModSecurity".
- SSH: se si dispone dell'accesso al terminale, il file di registro si trova in genere in /usr/local/apache/logs/error_log o /var/log/httpd/error_log.
Apri il file e cerca "ModSecurity" o il tuo indirizzo IP. Dovresti cercare una riga che recita "ModSecurity: Accesso negato"
Ulteriori letture: Correggi l'errore "Spiacenti, non ti è consentito accedere a questa pagina" in WordPress
Identificare gli ID delle regole di attivazione nei registri di controllo di ModSecurity
Questo è il passaggio più critico. Nella voce di registro, cerca l'ID della regola. Di solito appare tra parentesi, in questo modo: [id "941160"].
Esempio di frammento di registro: ModSecurity: accesso negato con codice 403… [msg “NoScript XSS InjectionChecker: iniezione HTML”] [id “941160”]
In questo esempio, 941160 è l'ID regola. Annota questo numero. Ti consentirà di disattivare solo questa regola specifica in un secondo momento, anziché disattivare l'intero firewall.
Riproduci gli errori mod_security su un sito WordPress in staging
Non testare mai le modifiche di sicurezza su un sito attivo.
- Crea un clone di staging del tuo sito web utilizzando gli strumenti del tuo host o un plugin.
- Tentare di riprodurre l'errore sul sito di staging.
- Se l'errore si verifica in questo caso, puoi tranquillamente provare le soluzioni riportate di seguito senza mettere a rischio la disponibilità del tuo sito principale.
Scopri di più: Come correggere gli errori 301 in WordPress
Metodi per correggere gli errori mod_security in WordPress
Una volta ottenuto l'ID regola (o confermato che si tratta di un problema di ModSecurity), utilizzare uno dei seguenti metodi.

Metodo 1: richiedere al provider di hosting di inserire nella whitelist specifici ID delle regole ModSecurity
Questa è la soluzione migliore e più duratura. La maggior parte dei provider di hosting condiviso non fornisce l'accesso root per modificare i file core di ModSecurity, quindi è necessario richiederlo a loro.
- Apri un ticket di supporto.
- Modello : "Ciao, sto ricevendo un errore 403 sul mio sito. I registri degli errori mostrano che è attivato dall'ID regola ModSecurity [inserisci ID qui]. Si tratta di un falso positivo causato dalla mia legittima attività su WordPress. Potresti aggiungere questa regola alla whitelist per il mio dominio ?"
- Solitamente il personale di supporto riesce ad aggiungere questa eccezione alla configurazione del server in pochi minuti.
Metodo 2: disabilitare temporaneamente mod_security in cPanel per i test
Se sei bloccato e non puoi attendere l'assistenza, puoi disattivare temporaneamente ModSecurity per completare il tuo compito.
- Accedi a cPanel.
- Vai su Sicurezza → ModSecurity.
- Individua il tuo dominio nell'elenco.
- Spostare l'interruttore da On a Off.
Nota: questa operazione disattiva completamente il firewall. Esegui questa operazione solo per i pochi minuti necessari a completare l'attività (ad esempio, salvare le impostazioni), quindi riattivalo immediatamente per proteggerti dalle minacce più comuni.
Metodo 3: correggere i conflitti tra plugin o temi che causano errori mod_security
A volte il problema è dovuto al software mal codificato sul tuo sito.
- Conflitti tra plugin: disattiva i plugin uno alla volta. Se l'errore si interrompe dopo aver disattivato un plugin specifico, verifica se sono disponibili aggiornamenti. In caso contrario, contatta lo sviluppatore del plugin; potrebbe essere necessario modificare la modalità di invio dei dati del plugin per evitare che i fornitori di WAF commerciali lo segnalino.
- Problemi con il tema: passa temporaneamente a un tema WordPress predefinito (come Twenty Twenty-Four). Se l'errore si risolve, il tema originale potrebbe includere script personalizzati che causano il blocco.
Approfondisci: Che cos'è un errore di conflitto 409 e come risolverlo
Metodo 4: Modificare le regole .htaccess per risolvere il blocco mod_security
Se il tuo host consente l'override di .htaccess, puoi disattivare manualmente ModSecurity per il tuo sito.
- Accedi al tuo sito tramite FTP o File Manager.
- Trova il file .htaccess nella cartella principale.
- Aggiungere il seguente codice in alto:
<IfModule mod_security.c>SecFilterEngine disattivato SecFilterScanPOST disattivato</IfModule>
Nota: non tutti i server supportano questa direttiva. Se il tuo sito si blocca (errore 500) dopo averla aggiunta, rimuovila immediatamente.
Metodo 5: utilizzare SecRuleRemoveById nella configurazione del server Apache o NGINX
server VPS o (o se il tuo host supporta questa specifica direttiva .htaccess), puoi rimuovere chirurgicamente la regola di blocco utilizzando l'ID trovato in precedenza.
- Per Apache (.htaccess): aggiungi questa riga al tuo file .htaccess, sostituendo XXXXXX con l'ID dai tuoi log:
<IfModule mod_security.c>SecRuleRemoveById XXXXXX</IfModule>
- Per Nginx: in genere è necessario l'accesso root per modificare il file nginx.conf o il file vhost del sito. Aggiungi questo comando all'interno del blocco server o location:
modsecurity_rules 'SecRuleRemoveById XXXXXX';
Questo è un metodo migliore del Metodo 4 perché mantiene attivo il firewall per tutte le altre minacce.
Per saperne di più: Apache vs Nginx
Metodo 6: riconfigurare i plugin di sicurezza per evitare conflitti con il firewall
Se si eseguono plugin come Wordfence , JetPack , ecc., questi agiscono come firewall a livello di applicazione. L'esecuzione di questi plugin insieme a una configurazione ModSecurity rigorosa a livello di server può causare un "doppio filtraggio", bloccando le richieste valide.
- Controlla le impostazioni del tuo plugin di sicurezza per "Modalità di apprendimento" o "Whitelist"
- Assicuratevi che i vostri provider di servizi Internet o gli IP dinamici non vengano contrassegnati da impostazioni eccessivamente aggressive sia nel plugin che nel server.
Approfondisci: Come risolvere l'errore di contenuto misto in WordPress
Flusso di lavoro per la risoluzione dei problemi sicuro tramite backup e staging di WordPress
La modifica delle regole di sicurezza a livello di server e dei file di configurazione principali comporta rischi intrinseci significativi.

Un singolo errore di sintassi nel file .htaccess può innescare immediatamente un "Errore interno del server 500", che metterà offline l'intero sito web.
Per evitare tempi di inattività imprevisti e perdite di dati, è necessario attenersi scrupolosamente a questo flusso di lavoro sicuro per la risoluzione dei problemi:
- Backup: prima di modificare qualsiasi codice, crea un backup manuale completo del tuo sito web. Assicurati di scaricare sia la directory dei file di WordPress (in particolare, wp-content e .htaccess) sia un'esportazione completa del database SQL. Questo creerà un punto di ripristino immediato nel caso in cui qualcosa vada storto.
- Staging: non testare mai le modifiche al firewall in un ambiente live. Crea un clone di staging del tuo sito; la maggior parte dei provider di hosting moderni offre questa funzionalità. Esegui prima tutti i test diagnostici e le modifiche ai file di configurazione in questa sandbox isolata.
- Verifica: dopo aver applicato una correzione (ad esempio SecRuleRemoveById), è necessario effettuare test approfonditi. Non limitarti a verificare se l'errore originale è stato eliminato; testa anche funzionalità critiche come moduli di contatto, pagine di accesso e flussi di pagamento e-commerce per assicurarti che la modifica di sicurezza non abbia danneggiato accidentalmente altri script.
- Distribuzione: una volta convalidata la soluzione in fase di staging senza effetti collaterali, puoi applicare in tutta sicurezza la stessa identica correzione al tuo sito live.
Conclusione: risolvere gli errori mod_security in WordPress
ModSecurity è un componente essenziale per la sicurezza delle applicazioni, in quanto filtra le risposte e blocca gli attacchi prima che raggiungano la tua installazione WordPress . Tuttavia, una configurazione corretta è fondamentale per evitare frustrazioni.
Analizzando i registri degli errori, identificando l'ID regola specifico e applicando regole di whitelist mirate (anziché disabilitare completamente il firewall), puoi mantenere un ambiente di hosting sicuro che funzioni senza problemi per te e i tuoi utenti.
Che tu risolva il problema tramite .htaccess o contattando il tuo provider di hosting, il modo migliore per risolvere definitivamente questi errori è chiedere consiglio a un esperto e seguire un approccio metodico.
Domande frequenti sulla correzione degli errori mod_security in WordPress
Perché i provider di hosting bloccano le richieste di WordPress con errori mod_security?
I provider di hosting bloccano le richieste quando le regole del firewall rilevano attività sospette. Queste regole sono state originariamente progettate per prevenire attacchi come l'iniezione di SQL e l'iniezione di script dannosi.
A volte segnalano normali azioni dell'utente WordPress, come la gestione di moduli o plugin . Puoi ridurre i falsi positivi chiedendo al tuo host di inserire nella whitelist specifici ID di regole invece di disabilitare completamente la protezione.
In che modo gli utenti di WordPress possono gestire efficacemente gli errori WordPress correlati a mod_security?
Inizia controllando il messaggio di errore esatto e l'ID della regola nei log del server. Quindi, se necessario, testa il problema in staging su diverse piattaforme.
Applica misure proattive come gli aggiornamenti dei plugin e la sanificazione degli input. Verifica sempre le modifiche prima di pubblicarle.
ModSecurity è utilizzato solo dai fornitori WAF commerciali?
No. ModSecurity è un software open source rilasciato con licenza Apache. È compatibile sia con prodotti commerciali che con distribuzioni indipendenti.
Lo utilizzano sia i fornitori WAF commerciali, sia molti ambienti di hosting che utilizzano set di regole gestiti dalla community e aggiornati regolarmente.
In che modo le funzionalità di filtraggio delle risposte influiscono sulla funzionalità di WordPress?
Le funzionalità di filtraggio delle risposte ispezionano i contenuti in uscita alla ricerca di minacce. In rari casi, bloccano l'output legittimo. Assicuratevi di utilizzare una rappresentazione dei dati appropriata e pratiche di codifica pulite per prevenire i trigger. Utilizzate plugin e temi ben recensiti per ridurre il rischio.
Gli sviluppatori possono contribuire con nuove funzionalità o correzioni a ModSecurity?
Sì. Gli sviluppatori possono inviare richieste di pull per migliorare le regole o aggiungere nuove funzionalità. Il progetto accoglie contributi da privati, agenzie e persino organizzazioni governative.