Errore 406 Not Acceptable: WAF e contenuti: L’errore 406 Not Acceptable indica, secondo HTTP, che il server non può produrre una rappresentazione compatibile con le preferenze indicate dal client.
Indice dei contenuti
Errore 406 Not Acceptable: WAF e contenuti
Questa guida approfondisce errore 406 Not Acceptable con controlli progressivi, modifiche reversibili e verifiche finali. Non inviare password, cookie, token, chiavi private o codici 2FA nei ticket.
Che cosa significa
Gli header Accept, Accept-Language e Accept-Encoding possono influenzare la negoziazione. Tuttavia un 406 durante il salvataggio di testo, codice o form può essere collegato a ModSecurity.
Il messaggio e i log devono stabilire quale interpretazione si applica al caso specifico.
Come riconoscere il problema
- Una API restituisce 406 per un formato richiesto.
- Il salvataggio fallisce solo con una stringa specifica.
- Il log mostra ModSecurity access denied.
- Il browser funziona ma un client personalizzato no.
- Cambiare l’header Accept modifica il risultato.
Cause più frequenti
1. Header Accept non supportato
Il client richiede un formato che l’endpoint non produce. Confronta questa ipotesi con il messaggio completo e con i log dell’orario interessato, evitando conclusioni basate soltanto sulla pagina mostrata dal browser.
2. Content negotiation errata
Lingua, codifica o media type non corrispondono.
3. Regola ModSecurity
Il payload somiglia a SQL injection, XSS o codice.
4. Plugin di sicurezza
Un filtro applicativo restituisce 406 invece di 403.
5. API configurata male
Il server accetta soltanto JSON o un formato specifico.
6. Cache con variazione incompleta
Una risposta per un header viene servita a client differenti.
Diagnosi passo per passo
- Controlla header Accept. Confronta browser e client che fallisce. Salva il risultato prima di passare al controllo seguente, così potrai identificare il punto preciso in cui il comportamento cambia.
- Leggi corpo e intestazioni. Identifica server, endpoint e formato atteso. Salva il risultato prima di passare al controllo seguente, così potrai identificare il punto preciso in cui il comportamento cambia.
- Registra orario e payload minimo. Riduci il contenuto finché individui la parte che scatena il blocco. Salva il risultato prima di passare al controllo seguente, così potrai identificare il punto preciso in cui il comportamento cambia.
- Controlla error_log e audit WAF. Cerca rule id e messaggio. Salva il risultato prima di passare al controllo seguente, così potrai identificare il punto preciso in cui il comportamento cambia.
- Prova un media type supportato. Usa la documentazione ufficiale dell’API. Salva il risultato prima di passare al controllo seguente, così potrai identificare il punto preciso in cui il comportamento cambia.
- Verifica plugin di sicurezza. Riproduci in staging senza disattivazioni globali. Salva il risultato prima di passare al controllo seguente, così potrai identificare il punto preciso in cui il comportamento cambia.
- Controlla Vary e cache. Assicurati che le risposte siano separate per gli header pertinenti. Salva il risultato prima di passare al controllo seguente, così potrai identificare il punto preciso in cui il comportamento cambia.
Procedura di risoluzione
- Correggi Accept. Richiedi un formato realmente supportato. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Invia Content-Type coerente. Distingui il formato richiesto da quello inviato. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Correggi il payload. Rimuovi markup o dati non validi quando possibile. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Richiedi esclusione WAF mirata. Fornisci URL, parametro e rule id. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Aggiorna plugin o API client. Usa versioni compatibili. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Correggi cache e header Vary. Evita rappresentazioni sbagliate. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
- Mantieni il WAF attivo. Verifica che l’eccezione non permetta input pericolosi. Dopo la modifica ripeti il test originale e verifica che non siano comparsi nuovi errori o regressioni.
Domande frequenti
Che cosa significa l’errore 406 Not Acceptable: WAF e contenuti?
In sintesi, gli header Accept, Accept-Language e Accept-Encoding possono influenzare la negoziazione. Tuttavia un 406 durante il salvataggio di testo, codice o form può essere collegato a ModSecurity.
Quali controlli fare per diagnosticare l’errore 406 Not Acceptable: WAF e contenuti?
Controlla header Accept. Confronta browser e client che fallisce.
Guide Xlogic correlate
- ModSecurity blocca WordPress: come diagnosticare il 403
- Errore 416 Range Not Satisfiable
- Errore 413 Content Too Large: cause e soluzioni