WordPress – Sécurisation
|
Sécurisation du fichier .htacces
Pour sécuriser les site WordPress, on devrait ajouter les lignes suivante au fichier .htaccess
# Désactivation de l'affichage du contenu des répertoires
Options -Indexes
# Masquage des informations du serveur
ServerSignature Off
# Protection du fichier wp-config.php
<files wp-config.php>
Order allow,deny
Deny from all
</files>
# Protection des fichiers .htaccess et .htpasswds
<Files ~ "^.*\.([Hh][Tt][AaPp])">
Order allow,deny
Deny from all
</Files>
# Masquage des pages d'auteur
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* - [F]
</IfModule>
# Protection du fichier xmlrpc.php
<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>
# Protection des fichiers de version
<FilesMatch "^(readme.html|readme.txt|README.txt|README.md|changelog.txt|license.txt|LICENCE.txt|L>
Order allow,deny
Deny from all
</FilesMatch>
# Protection du fichier install.php
<files install.php>
Order allow,deny
Deny from all
</files>
# Protection du fichier admin-bar.php
<files admin-bar.php>
Order allow,deny
Deny from all
</files>
Bloquer le site WordPress à un pays
Dans l’article ci-dessus, on peut voir comment bloquer l’accès à notre site pour certain pays.
Effacement des fichiers inutile
Le fichier http://VotreDomaine.OrG/readme.html
n’est plus nécessaire si le site WordPress est en ligne. On va l’effacer à travers le terminal. On se connecte à notre VPS avec Kitty ou Putty. On va dans le dossier racine de notre site web. Par exemple : /var/www/html/VotreDomaine.ORG
On efface le fichier avec la commande:sudo rm readme.html
Pour l’ancien fichier wp-config-sample.php
, on procède de la même manière s’il est toujours dans le dossier racine du site. C’est la même commande que pour le fichier readme.html mais avec le fichier wp-config-sample.php
à la place:sudo rm wp-config-sample.php
sécuriser le fichier functions.php
Quand on on essayer de se connecter au backend avec le mauvais User Name ou mot de passe, les erreurs de connexion affiche et indique ce qui est faut.
C’est assez simple pour un pirate de se concentrer sur le plus important une fois qu’il connait le User Name ou nom d’utilisateur.
Pour corriger ceci, on se connecte au VPS à avec le terminal, PowerShell, Kitty ou Putty. On va dans le dossier racine de notre site web, dans le dossier wp-content, thèmes et finalement dans le dossier du thème actif dans sur notre site WordPress.
Par exemple : /var/www/html/VotreDomaine.ORG
/wp-content/themes/kadence
On édite le fichier functions.php
avec la commande suivante:sudo nano functions.php
On ajoute en fin de fichier le code suivant:/* Masquer les erreurs de connexion à l'administration */
add_filter('login_errors', 'wpm_hide_errors');
function wpm_hide_errors() {
// On retourne notre propre phrase d'erreur
return "Quelque chose n'est pas correct. Contrôle ton identifiant et ton mot de passe. Contrôle aussi si ton clavier est bien configurer";
}
On en profite pour ajouter au même fichier le blocage de la lecture des versions des META données et version de WP, CSS et JS. Dans le même fichier, functions.php
, on ajoute le code suivant:add_filter('the_generator', 'wpm_delete_version');
// On retourne une chaine de caractère vide à la place de la version de WordPress
function wpm_delete_version(){
return '';
}
On ajoute aussi au même fichier un autre code qui bloquera la version de WordPress reprise par défaut quand la version du scripte ou d’un fichier la précise pas. , functions.php
, on ajoute le code suivant://Masquer la version de WordPress des scripts et style
function fjarrett_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', 'fjarrett_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'fjarrett_remove_wp_version_strings' );
Optimisation du fichier wp-config.php
Dans le fichier wp-config.php
, on ajouter la ligne suivante://Désactiver l'édition de fichiers dans l'admin WordPress
define( 'DISALLOW_FILE_EDIT', true );
Juste à l suite, on peut ajouter la ligne suivante:define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );
En cas de problèmes, on active ou désactive selon le besoin le débogage intégrer à WordPress.
// Enable or Disable WP_DEBUG mode
define( 'WP_DEBUG', false );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', false
);
Pour désactiver les erreurs à l’écran, on ajoute ce qui suite au fichier wp-config.php
:// Enable or Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Modification des droits du fichier wp-config.php
Le fichier wp-config.php
, devrais être protéger avec le mode 644
. Pour le modifier on utilise la commande suivante:sudo chmod 644 wp-config.php
Modification des droits du fichier /.htaccess
Même procédure pour le fichier .htaccess
que pour le fichier précédent.sudo chmod 644
.htaccess
Blocage du http avec le ParFeu ufw
Vu que le site est protéger en SSL ou https, on peut bloquer le http ou port 80. Pour se faire, on utilise la commande suivante:sudo ufw deny 80/tcp
Cette commande fonctionne que si le ufw (Uncomplicated FireWall) est activer. Voici un article qui traite le sujet.
La commande suivante sudo ufw status verbose
, permet de voir le statuts de ParFeu ufw.
mes sources: https://pavenum.com/blog/securite-wordpress-13-recommandations-et-1-mythe/
https://wordpress.org/plugins/secupress/
https://wpmarmite.com/snippet/cacher-erreurs-login-wordpress/
https://www.icontrolwp.com/blog/more-wordpress-security-disallow-file-edit-setting-wordpress/
https://stackoverflow.com/questions/30194811/change-the-permissions-of-the-files-generated-by-wordpress-on-the-server
https://wordpress.org/support/article/debugging-in-wordpress/
https://3click-solutions.com/fr/masquer-la-version-de-votre-site-wordpress/