WP Cerber Security 9.9.3
English version: WP Cerber Security 9.9.3
In sintesi
Abbiamo sviluppato la versione 9.9.3 concentrandoci sulla correttezza nei punti critici in cui fai affidamento quando qualcosa va storto. Questa versione corregge il comportamento di WP Cerber in caso di errori PHP irreversibili, risolve il problema della corrispondenza degli intervalli IPv6 negli elenchi di controllo degli accessi e fa sì che gli avvisi di amministrazione vengano visualizzati nella tua lingua.
Punti salienti
- Gli errori PHP critici vengono ora gestiti correttamente. Quando il nostro sistema di registrazione degli errori era attivo, un errore non intercettato poteva disattivare la pagina di errore critico di WordPress e l'email relativa alla modalità di ripristino. Abbiamo risolto questo problema.
- Diagnostica affidabile. L'errore irreversibile che ha effettivamente interrotto una richiesta ora viene registrato in modo affidabile nel log di Traffic Inspector, garantendo l'accuratezza delle analisi forensi.
- Gli intervalli IPv6 si comportano in modo deterministico. Gli intervalli validi scritti con trattino o caratteri jolly non vengono più rifiutati e i limiti degli intervalli ora corrispondono in modo inclusivo.
- Avvisi amministrativi nella tua lingua. I messaggi generati dalle richieste in background automatiche vengono ora tradotti nel momento in cui li leggi, non nel momento in cui sono stati creati.
Modifiche alla sicurezza
La corrispondenza degli intervalli IPv6 nell'ACL è stata corretta. Il nostro parser di intervalli confrontava i blocchi di ordine inferiore di un indirizzo IPv6 anche quando i blocchi iniziali avevano già stabilito l'ordine corretto. Di conseguenza, alcuni intervalli IPv6 perfettamente validi specificati con trattino o caratteri jolly venivano rifiutati quando si aggiungeva una voce all'elenco di controllo degli accessi o si filtravano i record nel visualizzatore del registro attività e traffico. Ora il parser confronta i blocchi rimanenti solo quando entrambi i limiti condividono lo stesso blocco iniziale, mentre gli intervalli invertiti e di lunghezza zero vengono ancora rifiutati. Il tuo ACL ora accetta tutti gli intervalli validi che gli fornisci.
I confini degli intervalli IPv6 ora sono inclusivi. Abbiamo corretto il confronto dei confini in modo che il primo e l'ultimo indirizzo di un intervallo IPv6 vengano considerati come parte dell'intervallo stesso. Le decisioni di accesso sull'intero intervallo sono ora deterministiche, inclusi gli indirizzi di confine.
Esperienza amministrativa
Il messaggio relativo al problema di invio dell'e-mail viene ora tradotto in fase di rendering. Su un sito web non in lingua inglese, l'avviso di mancata consegna dell'e-mail potrebbe apparire nella lingua della richiesta che non è riuscita a inviarla, solitamente una richiesta automatica come un report pianificato o un avviso attivato da un visitatore. Il messaggio viene ora tradotto nella lingua dell'amministratore nel momento stesso in cui viene visualizzato.
I messaggi di ripristino delle impostazioni ora vengono localizzati correttamente. Se le impostazioni del plugin risultavano danneggiate su un sito web non in inglese, il report di ripristino veniva mostrato all'amministratore senza traduzione. Anche questa situazione non ci soddisfaceva. Ora il messaggio viene ricostruito e tradotto al momento della visualizzazione, nella lingua dell'amministratore che lo legge.
I messaggi del widget di prontezza hanno ricevuto una corretta implementazione i18n. Diversi messaggi nel widget erano privi di localizzazione e non potevano essere tradotti. Questo problema è stato risolto.
Miglioramenti dell'affidabilità
Livello database più veloce sui percorsi più utilizzati. Abbiamo ridotto il sovraccarico di convalida degli identificatori nel nostro generatore di query sostituendo i controlli basati su espressioni regolari con una scansione di caratteri più leggera. Le operazioni di database eseguite frequentemente sono ora più efficienti e le regole di convalida e il comportamento delle query esistenti sono stati completamente preservati.
Gestione più intelligente dei problemi segnalati. Il registro che gestisce le notifiche dei problemi per gli amministratori ora può rivalutare ogni problema poco prima che venga visualizzato, aggiornarlo o eliminarlo completamente una volta risolto. È importante sottolineare che abbiamo progettato prima il percorso di gestione degli errori: un errore durante questa fase non vi impedirà mai di visualizzare il problema.
Test di compatibilità. Abbiamo testato questa versione con PHP 7.4.33, 8.0.30, 8.1.34, 8.2.33, 8.3.33, 8.4.24 e 8.5.9 e con WordPress 5.8.14, 6.6.6, 6.7.6, 6.8.7, 6.9.6 e 7.0.3.
Correzioni di bug
Gli errori fatali non gestiti non bypassano più il ripristino di WordPress. Questa è la correzione più importante di questa versione. Quando la registrazione degli errori era attiva e si verificava un'eccezione Throwable non gestita, come un'eccezione non gestita, un errore di tipo o un errore di analisi, il nostro gestore interrompeva la normale elaborazione degli errori fatali di PHP. Ciò poteva impedire a WordPress di mostrare la pagina di errore critico, di inviare l'email di ripristino o di annullare una modifica PHP errata effettuata tramite il plugin integrato o l'editor del tema. Gli errori interessati potevano anche non essere presenti nel file debug.log quando WP_DEBUG_LOG era abilitato. Gli errori PHP non fatali non sono mai stati interessati da questo bug.
Ora gli errori irreversibili vengono registrati correttamente nel log di Traffic Inspector. Non tutti gli errori PHP venivano registrati. Le nostre routine di arresto eseguono operazioni sul database e sulla rete che possono generare ulteriori informazioni diagnostiche e, poiché PHP conserva un solo slot per l'ultimo errore, un avviso successivo potrebbe sovrascrivere l'errore irreversibile che ha interrotto la richiesta. Ora memorizziamo l'ultimo errore all'inizio della nostra callback di arresto, in modo che le nostre procedure di gestione non possano più sovrascriverlo. In nome della trasparenza: le callback di arresto registrate da altro codice prima della nostra potrebbero comunque modificare l'ultimo errore prima della nostra esecuzione.
La navigazione rapida non genera più avvisi PHP. I parametri di query con valori multipli potevano raggiungere confronti tra stringhe scalari nel blocco di navigazione rapida, producendo avvisi Array to string conversion . A seconda della configurazione degli errori PHP, questi avvisi potevano inquinare i log, apparire nell'output di amministrazione o corrompere una risposta AJAX.
In definitiva
La versione 9.9.3 rende i guasti prevedibili e la diagnostica affidabile. Gli errori irreversibili ora vengono segnalati sia agli strumenti di ripristino di WordPress che ai nostri log, in modo che la diagnosi inizi da dati precisi. Gli intervalli IPv6 funzionano correttamente nelle ACL e nei filtri dei log. Le notifiche di amministrazione vengono visualizzate nella tua lingua, esattamente quando e dove le leggi.