Il tool tuttofare per WordPress: WP-CLI

WP-CLI è uno strumento a riga di comando per WordPress che consente di eseguire diverse attività di gestione del sito web, tra cui la sicurezza. WP-CLI offre diversi comandi per testare la sicurezza di WordPress, come la scansione di vulnerabilità, l’aggiornamento di plugin e temi, la gestione degli utenti, e molto altro.

Ecco alcuni esempi di comandi WP-CLI che possono essere utilizzati per testare la sicurezza di WordPress:

wp core verify-checksums: Questo comando verifica l’integrità dei file del core di WordPress e segnala eventuali discrepanze o modifiche.

Success: WordPress install is verified.

wp plugin status: Questo comando elenca tutti i plugin installati e il loro stato. Verificare che tutti i plugin siano attivi e aggiornati.

+-----------------------+--------+--------+---------+
| name | status | update | version |
+-----------------------+--------+--------+---------+
| akismet | active | none | 4.1.11 |
| classic-editor | active | none | 1.6 |
| contact-form-7 | active | none | 5.4.2 |
| jetpack | active | none | 10.1 |
+-----------------------+--------+--------+---------+

wp plugin update --all: Questo comando aggiorna tutti i plugin installati alla versione più recente disponibile.

Success: All plugins are up to date.

wp theme status: Questo comando elenca tutti i temi installati e il loro stato. Verificare che il tema attualmente in uso sia aggiornato e sicuro.

+----------------------+--------+--------+---------+
| name                 | status | update | version |
+----------------------+--------+--------+---------+
| twentytwenty         | active | none   | 1.9     |
| twentytwentyone       | inactive | none   | 1.2     |
+----------------------+--------+--------+---------+

wp user list: Questo comando elenca tutti gli utenti del sito web. Verificare che tutti gli utenti siano necessari e che non ci siano utenti con ruoli troppo elevati.

+----+----------+---------------------+--------------+
| ID | user_login | user_registered    | display_name |
+----+----------+---------------------+--------------+
| 1  | admin    | 2022-03-01 12:00:00 | Admin        |
| 2  | editor   | 2022-03-01 12:00:00 | Editor       |
| 3  | author   | 2022-03-01 12:00:00 | Author       |
| 4  | subscriber | 2022-03-01 12:00:00 | Subscriber   |
+----+----------+---------------------+--------------+

wp user delete <username>: Questo comando cancella l’utente specificato. Rimuovere gli utenti non necessari o sospetti.

Success: Removed user 4.

wp search-replace '<old_string>' '<new_string>': Questo comando sostituisce una stringa in tutto il database del sito web. Utilizzare questo comando per cercare eventuali URL o stringhe sospette e sostituirle con una versione sicura.

Success: 5 replacements made.

wp db optimize: Questo comando ottimizza la tabella del database per migliorare le prestazioni del sito web.

Success: Database optimized.

wp cron test: Questo comando verifica che la schedulazione delle attività pianificate (cron job) funzioni correttamente.

+----------------------+---------------------+--------+
| Next cron event(s) | Time | Hook |
+----------------------+---------------------+--------+
| wp_privacy_delete_o | 2023-03-28 08:48:10 | hourly |
| ld_export_personal_d | 2023-03-28 08:50:13 | hourly |
| ata_cleanup_logs | 2023-03-28 08:52:11 | hourly |
+----------------------+---------------------+--------+
Success: The cron event system on this site appears to be working correctly.

wp core version: Questo comando restituisce la versione del core di WordPress installata sul server.

5.9

wp plugin list: Questo comando elenca tutti i plugin installati sul sito web.

+------------------------+----------+-----------+---------+
| name                   | status   | update    | version |
+------------------------+----------+-----------+---------+
| akismet                | active   | none      | 4.1.11  |
| hello-dolly            | inactive | none      | 1.7.2   |
| wp-security-audit-log  | active   | available | 4.2.2   |
+------------------------+----------+-----------+---------+

wp theme list: Questo comando elenca tutti i temi installati sul sito web.

+----------------+-----------+-----------+---------+
| name           | status    | update    | version |
+----------------+-----------+-----------+---------+
| twentytwenty   | inactive  | none      | 1.8     |
| twentynineteen | active    | available | 2.9     |
| oceanwp        | inactive  | none      | 1.10.12 |
+----------------+-----------+-----------+---------+

wp user list: Questo comando elenca tutti gli utenti del sito web.

+----+------------+--------------+------------------------+---------------------+
| ID | user_login | display_name | user_email             | roles               |
+----+------------+--------------+------------------------+---------------------+
| 1  | admin      | Admin        | admin@example.com      | administrator       |
| 2  | editor     | Editor       | editor@example.com     | editor              |
| 3  | subscriber | Subscriber   | subscriber@example.com | subscriber          |
+----+------------+--------------+------------------------+---------------------+

wp user create testuser test@example.com --role=author: Questo comando crea un nuovo utente con il nome utente “testuser”, l’indirizzo email “test@example.com” e il ruolo di autore.

Success: Created user 4.

wp user delete testuser: Questo comando elimina l’utente con il nome utente “testuser”.

Success: Removed user 4.

wp search-replace 'http://example.com' 'https://example.com': Questo comando sostituisce tutte le occorrenze dell’URL “http://example.com” con “https://example.com” in tutto il database del sito web.

Success: Made replacements. 14 replacements were made.

wp db optimize: Questo comando ottimizza le tabelle del database del sito web.

Success: Database optimization complete.

wp cron event list: Questo comando elenca tutti gli eventi pianificati (cron job) del sito web.

+-------------------------+---------------------+---------------------+---------+
| hook_name               | next_run_gmt        | next_run_relative   | interval|
+-------------------------+---------------------+---------------------+---------+
| wp_version_check        | 2022-03-26 00:39:24 | 12 hours 11 minutes | 12 hours|
| wp_update_plugins       | 2022-03-25 21:01:53 | 1 hour 33 minutes   | 12 hours|
| wp_update_themes        | 2022-03-25 20:55:05 | 1 hour 26 minutes   | 12 hours|
| delete_expired_transients| N/A                | N/A                 | N/A     |
+-------------------------+---------------------+---------------------+---------+

È importante notare che WP-CLI deve essere utilizzato con cautela e solo da utenti esperti in quanto alcuni comandi potrebbero causare problemi se utilizzati impropriamente. Inoltre, è consigliabile effettuare un backup completo del sito web prima di utilizzare WP-CLI per testare la sicurezza di WordPress.