Sécuriser l’administration de WordPress

La première étape pour sécuriser un peu plus l’administration de WordPress consiste en l’installation d’un plugin nommé “WP Security Scan” disponible ici: http://wordpress.org/extend/plugins/wp-security-scan/

Une fois installé et activé, rendez-vous sur l’onglet WSD Security et cliquez sur WSD Security.
Dans la rubrique “Initial Scan”, contrôlez que tout est au vert. Si tel n’est pas le cas, effectuez les manipulations nécessaires pour y remédier à savoir:

*Avoir la dernière version de WP

* Ne pas avoir “wp_” comme préfixe de table (ceci est à déterminer lors de l’installation de WP).
Dans le cas contraire rendez-vous dans l’onglet “Datatbase” de WP Security, faites une sauvegarde de votre BD puis modifier le préfixe de vos tables dans la zone dédiée à cela.

* Masquer votre version de WP.
Pour ce faire, ouvrez le fichier “functions.php” de votre thème et ajoutez la ligne suivante:
add_filter(‘the_generator’, create_function( ‘$a’, “return null;” ) );

Vous pouvez aussi supprimer dans le fichier “header.php” de votre thème la ligne suivante:  <meta name=”generator” content=”WordPress <?php bloginfo(‘version’); ?>” />

Ensuite, supprimez les fichiers “readme.html” et “licence.txt” situés à la racine de votre site car ils contiennent  eux aussi le numéro de version de votre WP.

Mais même avec ces petites manip, il est tout de même possible de connaître votre version de WP…

* Masquer les erreurs de votre Base de Données

*  WP Security Scan, permet de cacherl’élément meta indiquant la version de votre WordPress

* Pas de login administrateur tel que admin, administrator, administrateur etc.

* Protéger le fichier wp-admin par un .htaccess
Rien de bien compliqué pour cette étape et on va même faire mieux en ajoutant un autre fichier nommé “.htpassword” afin de “crypter le combo login/mot de passe.
Tout d’abord, déconnectez vous de votre administration.

1->Ensuite il vous faut trouver le chemin relatif qui pointe vers le dossier wp-admin. Pour ce faire, créez un fichier nommé “chemin.php” que vous mettrez sur votre serveur dans le fichier “wp-admin” et qui contiendra la ligne suivante: <?php echo realpath('chemin.php'); ?>

2 ->Ensuite, ouvrez votre site dans votre navigateur et ajoutez “/wp-admin/chemin.php” à la suite de l’adresse de votre site.

3->Copiez l’adresse qui s’affiche sur la page sans prendre “/chemin.php”

4->Créez un fichier nommé “x.htaccess” contenant les lignes suivantes:

AuthName “Administration protégée”
AuthType Basic
AuthUserFile /CHEMIN RELATIF/.htpasswd
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any

5->Remplacez “CHEMIN RELATIF par le chemin copié précédemment.

6->Créez un fichier que vous nommerez “x.htpasswd”

7->Ensuite créez un fichier “cryptage.php” contenant les lignes suivantes:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=iso-8859-1″ />
<title>Crypter vos mots de passe</title>
<style type=”text/css”>
label {
display:block;
width:150px;
float:left;
}
</style>
</head>

<body>

<h3>Crypter vos mots de passe</h3>

<p>
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
$login = $_POST['login'];
$pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe

echo ‘Ligne à copier dans le .htpasswd :<br />’ . $login . ‘:’ . $pass_crypte;
}

else // On n’a pas encore rempli le formulaire
{
?>
</p>

<p>Entrez votre login et votre mot de passe pour le crypter.</p>

<form method=”post”>
<p>
<label for=”login”>Login :</label> <input type=”text” name=”login”><br />
<label for=”pass”>Mot de passe :</label> <input type=”text” name=”pass”><br /><br />

<input type=”submit” value=”Crypter !”>
</p>
</form>

<?php
}
?>

<br />

</body>
</html>

8->Envoyez le fichier “cryptage.php” sur votre serveur dans “wp-admin” puis entrez dans un navigateur l’adresse de votre site suivi de “wp-admin/cryptage.php”

9->Choisissez un identifiant et un mot de passe et validez

10->Copiez la ligne qui s’affiche “x.htpasswd”
Renouvelez l’étape 9 et 10 si vous avez d’autres utilisateurs à ajouter

11->Enfin, envoyer les fichiers “x.htaccess” et “x.htpasswd” dans le dossier “wp-admin”, renommez les en “.htaccess” et “.htpasswd” puis effacez les fichiers “chemin.php” et “cryptage.php”

Voilà, votre admin est un peu plus sécurisée, le fichier “.htaccess” est créé et le tout protégé par votre fichier “.htpassword”

Posted in Wordpress | Leave a comment

Booster son site

Une autre optimisation intéressante pour donner un peu de patate à son site est la compression GZip. En gros, les données sont compressées à la volées puis décompressées par le navigateur. 99% des navigateurs en circulation sont capables de décoder du contenu Gzippé. Cette compression optimise le poids de votre page et ainsi vous garantit l’optimisation de la vitesse de chargement.

Pour activer GZip, plusieurs méthodes s’offrent à vous.

WordPress: utiliser un plugin? Une ligne de code vaut parfois mieux qu’un module dont on n’est pas certain de la qualité, de la pérennité et qui peut (dans certains cas) laisser une empreinte non négligeable sur le site (ajouts dans la bd, ajout de dossiers/fichiers) etc.
Alors quelle autre solution? Et bien la voici:
Dans le fichier  “wp-config” de votre installation (situé à la racine de votre site (www\wp-config)), collez le code suivant:
ob_start(‘ob_gzhandler’);

Pour les sites qui ne sont pas sous WordPress (mais aussi pour ceux qui le sont) voici deux autres manières d’activer GZip:

Ajouter au début de votre fichier “index.php” l’instruction suivante :
<?php ob_start(“ob_gzhandler”); ?>

Autre méthode, ajoutez les lignes suivantes dans le “.htaccess” à la racine de votre FTP (www\.htaccess) :

SetEnv REGISTER_GLOBALS 0
SetEnv ZEND_OPTIMIZER 1
SetEnv MAGIC_QUOTES 0
SetEnv PHP_VER 5

Si vous souhaitez agir directement sur Apache, je vous renvoie à l’article suivant: http://www.alsacreations.com/article/lire/914-compression-pages-html-css-gzip-deflate.html/

Bon, et maintenant que GZip est activé et étant donné que tous les hébergeurs n’acceptent pas ce type de compression, contrôlez ce fait en vous rendant sur ce site: http://www.whatsmyip.org/http_compression/

Posted in Optimisation | Tagged , , | Leave a comment

Tester son site

Il est utile voir même indispensable de connaître et tester la vitesse de chargement de son site, que ce soit durant la phase de développement, pendant et après l’optimisation et même tout au long de sa vie.
Pour ce faire, plusieurs sites sont à votre disposition, plus ou moins complets, plus ou moins complémentaires.
En voici quelques uns que j’ai retenu et que je vous invite à essayer:

Monitoring Transactionnel: http://www.monitoring-transactionnel.com/performance

Pingdom: http://tools.pingdom.com/fpt/

WebSiteOptimization: http://www.websiteoptimization.com/services/analyze/

WebWait: http://webwait.com/

Une fois en ligne, il s’agit aussi de surveiller votre site, d’en suivre sa disponibilité  et son activité. Pour se faire, plusieurs outils en ligne permettent le monitoring.
Il vous sera même possible d’être alerté par mail ou SMS en cas d’indisponibilité de votre site.

Commençons tout d’abord par Woozweb (http://www.woozweb.com) qui est entièrement gratuit et vous permettra de suivre votre site mais aussi vos sites favoris

PingDom (https://www.pingdom.com) tout comme Site24x7 (https://www.site24x7.com) offrent la possibilité de suivre 1 site gratuitement et proposent aussi des offres complémentaires mais payantes.

Posted in Optimisation | Leave a comment

Optimiser ses CSS

Une étape importante et préalable à la mise en ligne d’un site est l’optimisation de son (ses) fichier(s) CSS.

Cela consiste à réduire ou supprimer les retours à la ligne, trier les priorités et sélecteurs, fusionner les priorités similaires,compresser les couleurs, supprimer les commentaires etc.

Voici un exemple de ce qu’il est possible de faire

#header {
background-color: #ffffff;
background-image: url(images/header.png);
background-repeat: no-repeat;
background-position: top left;
}

devient après optimisation

#header {background: #000 url(images/header.png) no-repeat top left;}

Ici, le nombre de caractère utilisé a été divisé par plus de 2 !! Et avec un peu d’habitude, le CSS reste très lisible.

Autre exemple:

#calendar {
padding-top: 12px;
pading-right: 0px;
padding-bottom: 0px;
padding-left: 6px;
}

devient alors

#calendar{ padding: 12px 0 0 6px;}

Le gain en terme de caractère est encore une fois non négligeable et va directement influer sur le poids de votre fichier. Mais c’est un travail qui peu vite être fastidieux…

Alors pour nous aider dans cette tâche, des outils en ligne existent et vont grandement nous aider.

Si il ne fallait en retenir qu’un je vous dirais Clean CSS (http://www.cleancss.com/) qui est simple d’utilisation, performant et paramétrable.Pour ce qui concerne l’utilisation de Clean CSS, je vous conseil la compression la plus compact. Certes, le code devient illisible pour le commun des mortels mais, si vous procédez avec sérieux vous prendrez le soin d’avoir une sauvegarde de vos sources “brut” dans un dossier dédié. Ce fichier contiendra vos commentaires de code, vos propriétés seront bien distinctes, le code sera aéré… Bref, un code lisible et modifiable facilement.

Et si il fallait en retenir 2 alors le suivant serait CSS Compressor (http://iceyboard.no-ip.org/projects/css_compressor)

Toutefois, avant d’utiliser ce type d’outils, assurez-vous que votre CSS est valide… Et oui, les optimisateurs de CSS sont là pour optimiser, pas pour valider. Même si Clean CSS vous donneras quelques infos. Pour ce faire, rendez-vous sur le site du W3C (http://jigsaw.w3.org/css-validator/).

Posted in Optimisation | Tagged , | Leave a comment

Le multisite sous WP 3.0 et plus

Voici une liste de liens qui m’auront été fort utiles pour activer la fonction multisite de  WP  3.0 ou plus.

Tout n’abord l’excellent podcast de WP-Channel que vous pourrez retrouver ici:

http://wpchannel.com/activer-fonctionnalites-multi-sites-wordpress-3-0/

avec cet article en complément: http://wpchannel.com/wordpress-multi-site-multi-domaine-plugin-domain-mapping/

Une petite astuce à savoir: il faut créer un sous-domaine de ce type appelé sous-domaine générique (wildcard subdomain): *.mondomaine.com.

Le blog de Marie Guillaumet  est assez complémentaire aux infos de WP Channel sur le sujet: http://blog.marieguillaumet.com/installation-de-wordpress-3-0-multisite-conseils-problemes-et-solutions/

 

 

Pour ce qui concerne les multisite en domaine propre vous pourrez trouver des informations ici:http://wordpress-spirit.com/tutoriels-wordpress/parametrer-wordpress-3-pour-une-utilisation-multi-sites/

Enfin, il ne faut bien évidemment pas oublier le codex de WordPress qui traite de tout ceci: http://codex.wordpress.org/Version_3.0#Multisite et surtout ici: http://codex.wordpress.org/Create_A_Network

 

Pour ceux que ça intéresse, la page “Network” est aussi accessible de la sorte: http://www.mondomaine.com/wp-admin/network

L’administration du site en sous-domaine est aussi accessible à l’adresse: lesite.mondomaine.com/wp-admin/index.php

Sous WP 3.2.1, le menu NetWork Admin est accessible en haut à droite de  l’espace d’administration de votre site ou sous l’onglet déroulant “Salut, votrepseudo”.

 

Dans les outils utiles il peut y avoir ce site: http://dnslookup.fr/, qui permet de connaître les DNS de votre site

Pour ce qui est le FTP et le travail sur les fichiers de votre serveur, vous devez très certainement déjà avoir en votre possession un utilitaire tel Filezilla (http://filezilla.fr/) ou FireFTP pour FireFox (https://addons.mozilla.org/fr/firefox/addon/fireftp/)

Pour le reste, la gestion de vos sites se déroule de façon traditionnelle. Pour accéder au tableau de bord de vos sites en sous-domaine, procédez de la sorte;

Clic sur “Admin Network” (admin réseau) –> “All Sites” (tous mes sites) [ou alors saisir directement http://mondomaine.com/wp-admin/network/sites.php ]

Ensuite survolez avec votre souris le nom du site sur lequel vous souhaitez travailler puis cliquez sur “Dashboard” (Tableau de bord)

Mais vous pouvez aussi bien saisir l’adresse suivante: http://monsite.mondomaine.com/wp-admin

 

 

Posted in Wordpress | Leave a comment