====== Best Practice per l'installazione di WordPress ======
La guida è ancora WIP !!!
La guida seguente serve per rendere l'installazione di WordPress più sicura.
===== Installazione del Core =====
==== 1. Non utilizzare l'utente admin ====
Nell'installazione di default WordPress crea un utente **''//“admin”//''**. \\
Questo rende un eventuale attacco a ''//forza bruta//'' (Brute Force) più semplice perché basterà variare solo la password per tentare l'ingresso. \\
E' buona prassi creare un nuovo utente con **privilegi amministrativi** e cancellare quello di default.
==== 2. Creare una password con livello di sicurezza elevato ====
La creazione di password a sicurezza elevata è un buon modo per dissuadere i male intenzionati. \\
Per fare ciò si può ricorrere ad un generatore di password sicure come il seguente: \\
[[https://www.nexcess.net/resources/tools/secure-password-generator/]] \\
Tramite questo sito si possono generare password ''//“tradizionali”//'' come la seguente: \\
''//'pu
**NB**: Prima di eseguire le operazioni seguenti è buona cosa porre WordPress in ''Maintenance Mode'' ed eseguire un BackUp del DB.
E' necessario intervenire sul ''wp-config.php'', rinominare tutte le tabelle nel database con il nuovo prefisso (anche le tabelle di eventuali plug-in) e aggiornare le referenze delle tabelle usermeta e options. \\
Di seguito referenzierò come ''newprefix_'' il nuovo prefisso che intendo dare alle tabelle. \\
Apriamo il file ''wp-config.php'' e sostituire
$table_prefix = 'wp_';
con
$table_prefix = 'newprefix_';
=== 3.2 Cambiare il prefisso di tutte le tabelle nel database ===
Utilizzando un qualsiasi strumento di accesso a MYSQL, collegarsi al DB dove risiedono le tabelle di WordPress e, nel tab SQL, incollare quanto segue
RENAME table `wp_commentmeta` TO `newprefix_commentmeta`;
RENAME table `wp_comments` TO `newprefix_comments`;
RENAME table `wp_links` TO `newprefix_links`;
RENAME table `wp_options` TO `newprefix_options`;
RENAME table `wp_postmeta` TO `newprefix_postmeta`;
RENAME table `wp_posts` TO `newprefix_posts`;
RENAME table `wp_terms` TO `newprefix_terms`;
RENAME table `wp_term_relationships` TO `newprefix_term_relationships`;
RENAME table `wp_term_taxonomy` TO `newprefix_term_taxonomy`;
RENAME table `wp_usermeta` TO `newprefix_usermeta`;
RENAME table `wp_users` TO `newprefix_users`;
ed eseguire.
=== 3.3 Aggiornare le referenze nelle tabelle usermeta e options ===
Sempre dallo strumento di accesso a MYSQL assicurarsi che, ora, le tabelle si chiamino ''newprefix_//NomeTabella//'' poi eseguire quanto segue
UPDATE `newprefix_usermeta` SET `meta_key` = REPLACE( `meta_key`, 'wp_', 'newprefix_' )
UPDATE `newprefix_options` SET `option_name` = 'newprefix_user_roles' WHERE `option_name` = 'wp_user_roles'
==== 4. Utilizzare il file .htaccess ====
Sezione in fase di stesura ...
^Riferimenti^
| http://www.creativebloq.com/wordpress/protect-your-wordpress-site-htaccess-4122793 |
| https://www.wpwhitesecurity.com/wordpress-security-hacks/protect-wordpress-wp-config-php-security/ |
| https://codex.wordpress.org/Hardening_WordPress |
==== 5. Utilizzare le wordpress key ====
Nel file ''wp-config.php'' sono presenti tre simboli nei quali vanno inserite delle chiavi per aumentare la sicurezza relativa all'utilizzo dei cookies.
Queste chiavi vengono generate tramite il sito ufficiale (riportato anche nel ''wp-config.php''): \\
[[https://api.wordpress.org/secret-key/1.1/]]
Per tanto il blocco
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
deve essere rimpiazzato con quello fornito dalla chiamata al sito
define('AUTH_KEY', '>hOYr+;-|U%2T&kB^vR$Nu9Urp!D{/+6|ppA eX1Zt,` YUQPcs7');
===== Post Installazione =====
==== 6. Nascondere la versione di WordPress ====
=== 6.1 Eliminazione dal Codice ===
Ispezionando il codice di un sito WordPress è possibile vedere la versione installata,
questo può facilitare il lavoro degli hackers che sapendo il numero della versione potrebbero, se il cms non è aggiornato, risalire a eventuali bug.
Per nascondere la versione di WordPress si consiglia di aggiungere il seguente codice nel file ''/wp-includes/functions.php'':
/* Hide Version Number */
/* Hide WP version strings from scripts and styles
* @return {string} $src
* @filter script_loader_src
* @filter style_loader_src
*/
function fb_remove_wp_version_strings( $src ) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if ( !empty($query['ver']) && $query['ver'] === $wp_version ) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter( 'script_loader_src', 'fb_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'fb_remove_wp_version_strings' );
/* Hide WP version strings from generator meta tag */
function fb_remove_version() {
return '';
}
add_filter('the_generator', 'fb_remove_version');
=== 6.2 Eliminare i files inutili che riportano la versione ===
Nella cartella di WordPress si trovano alcuni files che possono rivelare la versione in uso. \\
Si consiglia di eliminare i files:
* readme.html
* licenza.html
* license.txt
* LEGGIMI.txt
==== 7. Cancellare i temi e i plug-ins non utilizzati ====
È importante cancellare temi e plugin che non utilizziamo per diminuire la possibilità di falle nel codice. \\
I plugin e i temi utilizzati devono essere, se possibile, sempre aggiornati all’ultima versione. \\
Questo è uno dei maggiori fattori di rischio in una installazione WordPress. \\
Si ricorda che due plug-ins che fanno le medesime funzioni possono andare in conflitto fra loro anche se uno dei due è disattivo su WordPress causando errori interni che possono compromettere la fruizione del sito.
==== 8. Utilizzare i permessi corretti ====
Per quanto riguarda i permessi di file e cartelle, tutte le cartelle dovrebbero essere **755** e i file **644**, il ''wp-config.php'' dovrebbe essere settato con permessi **600** come mostrato di seguito:
^File^Percorso^permessi^
|root directory|www.miosito.com/|0755|
|wp-admin|www.miosito.com/wp-admin|0755|
|wp-content|www.miosito.com/wp-content|0755|
|wp-includes|www.miosito.com/wp-includes|0755|
|.htaccess|www.miosito.com/.htaccess|0644|
|wp-config.php|www.miosito.com/wp-config.php|0600|
===== Reference =====
http://www.marchettidesign.net/2015/05/come-rendere-wordpress-piu-sicuro-in-10-step-e-con-i-migliori-plugin/