WordPress
Proteggi la tua installazione
Ricerca…
Osservazioni
I siti web di WordPress sono spesso violati. Questo argomento è per le tecniche e le pratiche che aumentano la sicurezza della tua installazione di WordPress oltre a quanto ottenuto in un'installazione di base.
Oltre a questo argomento, un altro buon punto da leggere su come proteggere un'installazione di WordPress è la pagina di WordPress Codex di Hardening .
Disattiva Editor di file
L'editor di file fornito con WordPress è un rischio per la sicurezza. Se un utente malintenzionato ottiene l'accesso amministrativo al tuo sito Web WordPress, sarà facilmente in grado di inserire codice dannoso in file di temi e plug-in. È anche un rischio per i clienti che non sanno cosa stanno facendo. Una volta i due punti errati nell'editor di file possono rompere un sito e renderlo inaccessibile dal browser.
Nel tuo file wp-config.php
WordPress, disabilita l'editor di file aggiungendo la seguente riga di codice.
define( 'DISALLOW_FILE_EDIT', true );
Quella linea avrà l'effetto desiderato se aggiunta al file functions.php
del tuo tema, ma è meglio aggiungere a wp-config.php
.
Se stai usando WordPress CLI per installare WordPress puoi usare il seguente comando per creare un file wp-config.php
con la modifica dei file disabilitata.
/* declare variables beforehand or substitute strings in */
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU --extra-php <<PHP
define( 'DISALLOW_FILE_EDIT', true );
PHP
Questo metodo è utile se si installa WordPress con uno script.
Muovi wp-config.php
Le informazioni più sensibili di un'installazione di WordPress sono memorizzate nel file wp-config.php
. Se un hacker ottiene l'accesso a questo file, ha il controllo totale del tuo sito web.
Di default wp-config.php
è memorizzato nella cartella di installazione di WordPress. Per rendere questo file più difficile da rubare, puoi spostarlo dalla cartella accessibile web. Se lo sposti solo una cartella sopra, WordPress lo troverà automaticamente. Se sposti wp-config.php
in una posizione diversa, crea un file vuoto chiamato wp-config.php
nella cartella di installazione di WordPress. Quindi aggiungere il seguente:
define('ABSPATH', dirname(__FILE__) . '/');
// '../../wp-config.php' defines location two folders above installation folder.
// Substitute with actual location of wp-config.php file as necessary.
require_once(ABSPATH . '../../wp-config.php');
Potrebbe essere necessario rendere eseguibile php
nella cartella in cui si inserisce wp-config.php. Dovresti rendere eseguibile php nel minor numero possibile di cartelle. Un buon sistema mette l'installazione di WordPress in /path/to/wordpress/install/
e la configurazione in /path/to/wordpress/config
. Assicurati che la cartella di configurazione non sia accessibile dal Web e non inserisca altre informazioni riservate in /path/to/
o più in alto nella gerarchia delle cartelle. In questo caso dovresti scrivere una riga simile alla seguente nel tuo php.ini
:
open_basedir = "/path/to/wordpress/install/;/path/to/wordpress/config"
Questa tecnica è controversa e alcune persone non pensano che migliori la sicurezza. Un'ampia discussione sull'argomento può essere letta in questa domanda WordPress StackExchange .
Imposta un prefisso personalizzato per le tabelle di WordPress
Quando installi WordPress sul tuo server, lo script di installazione inserirà un prefisso davanti a tutti i nomi delle tabelle MySQL di WordPress. Questo prefisso è impostato su "wp_" per impostazione predefinita. La tabella dei post di WordPress verrà chiamata wp_posts
ad esempio. Cambiando il prefisso della tabella è possibile creare un po 'di sicurezza per oscurità. In questo modo, quando un hacker tenta di eseguire attacchi SQL injection, dovrà indovinare il prefisso del proprio tavolo piuttosto che usare solo "wp_". Puoi impostare questo prefisso per essere quello che vuoi.
Imposta prefisso nella nuova installazione di WordPress
Se si utilizza la famosa installazione di 5 minuti, cambiare il prefisso in campo durante l'installazione.
Se l'installazione avviene tramite CLI di WordPress, utilizzare il seguente comando:
// set other variables above, or substitute your strings in.
WP_DBPREFIX=foo
wp core config --dbname="$MYSQL_DBNAME" --dbuser="$MYSQL_USERNAME" --dbpass="$MYSQL_PASS" --dbprefix="$WP_DBPREFIX"_ --locale=en_AU
Cambia prefisso nell'installazione esistente
Cambiare il prefisso è un po 'più difficile. In primo luogo utilizzare un programma FTP come FileZilla per modificare il file wp-config.php
. Cambia la voce $table_prefix = 'wp_';
a $table_prefix = 'foo_';
sostituendo 'pippo' per il prefisso desiderato.
Successivamente dovremo modificare il database. Se hai accesso a phpMyAdmin, effettua il login e fai quanto segue:
- Seleziona il database di WordPress
- Seleziona tutte le tabelle e nel menu a discesa seleziona sostituisci prefisso tabella.
- In "Da" digita "wp_". In "A" digita il prefisso, "pippo_" in questo esempio e premi "Invia".
- Le tabelle dovrebbero ora assomigliare a questo:
Se non è possibile utilizzare phpMyAdmin, utilizzare il seguente comando MySQL:
RENAME table `wp_comments` TO `foo_comments`
Avrai bisogno di eseguire quel comando per ogni tabella, sostituendo 'commenti' per gli altri nomi di tabelle.
Quindi dobbiamo modificare alcune voci in alcune tabelle. Esegui questa query sulla tabella 'foo_options'
SELECT * FROM foo_options WHERE option_name LIKE '%user_roles%'
Dovrebbe apparire una voce con nome_opzione di "wp_user_roles". In quella voce cambia la voce 'option_name' da wp_user_roles
a foo_user_roles
.
Quindi apri la tabella "foo_usermeta" e trova tutte le voci con "wp_" in primo piano. e cambialo in "foo_". Il numero di voci che devi modificare dipenderà dal numero di utenti che hai.
Questo dovrebbe essere tutto ciò che serve per cambiare il prefisso in un'installazione esistente