W3 Total Cache améliore les performances d'un « site/blog » propulsé par Wordpress ainsi que la rapidité du chargement des pages pour une meilleure expérience utilisateur et un meilleur référencement !
Pour cela W3 Total Cache met en cache différents éléments : renforcement du cache navigateur, cache des pages, des objets et des requêtes SQL. Il propose aussi différentes fonctions tel que le html/css/js minify et la gestion de CDN.
## Installation
### Prérequis
* PHP 5.6 >=
* MySQL 5.6 >=
* Apache avec module rewrite
### Procédure
* Télécharger l'archive du plugin sur le site de [Wordpress](http://wordpress.org/extend/plugins/w3-total-cache/) et la décompresser dans wp-content/plugins. (Ou bien installer le plugin depuis Wordpress) ;
* Activer le plugins dans la liste des extensions Wordpress ;
* Passer à la configuration.
## Configuration
La configuration se passe dans le tableau de bord de Worpdress, dans l'onglet « Performance ».
Cliquer sur le bouton « Compatiblity Check », pour vérifier que votre serveur dispose de tous les modules nécessaire.
# Mise à jour Wordpress par l'interface web via ssh
Attention en wordpress 4.3 et 4.8, la mise à jour via ssh est cassée, il faut appliquer ce fix : <https://www.lekernelpanique.fr/2015/09/08/wordpress-4-3-casse-la-mise-a-jour-via-sshsftp/>
## Utilisation de clés SSH pour la mise à jour
Lors de chaque mise à jour, avoir le formulaire qui demande les identifiants pour mettre à jour via SSH peut être embêtant. On peut automatiser la tâche avec une clé SSH.
Si vous avez des retours de type : 'Operation not permitted', il y a de bonne chance que le propriétaire du fichier soit déjà l'utilisateur utilisé par l'instance du serveur web (et donc les droits sont déjà suffisant).
## Définir les droits des fichiers écrit par Wordpress
Wordpress surcharge l'umask définie par Apache/PHP et écrit par défaut les fichiers et dossiers en 750.
Il faut rajouter ces 2 lignes dans wp-config.php pour avoir des droits corrects :
Sur les Wordpress pas à jour, l'API xmlrpc.php est sensible à une attaque par rebond, un attaquant réalise plein de requêtes sur xmlrpc.php et votre serveur fait des requêtes vers la/les cibles de l'attaquant.
S'il ne vous est pas possible de mettre à jour Wordpress, une solution est de bloquer les requêtes vers xmlrpc.php dans Apache :
Par défaut, le core de WordPress se met à jour automatiquement pour les versions mineures, cf <https://codex.wordpress.org/Configuring_Automatic_Background_Updates>
WPSscan (https://wpscan.org/) est un outil de scan de vulnérabilités en boite noire dédié à WordPress. Il va détecter la version de WordPress, lister d'éventuelles vulénrabilités connues pour cette version, répertorier les thèmes et plugins utilisés avec leur failles et pointer des défauts de configuration de l'installation.
Pour l'installer, vous pouvez suivre les instructions de [la documentation](https://github.com/wpscanteam/wpscan#install)
### Utilisation
#### Mise à jour
Avant la première utilisation, et de manière régulière, il faut mettre à jour WPScan, cela lui permet de récupérer la liste des dernière vulnérabiliés. Vous pouvez le faire avec la commande suivante :
~~~
ruby wpscan.rb --update
~~~
*Note* : Si votre base de donnée locale des vulnérabilités est trop ancienne, le script vous proposera automatiquement de faire la mise à jour.
#### Scan d'un site
L'opération est simple, il suffit juste de donner l'adresse du site à WPScan. Vous optiendrez alors un compte rendu complet de la situation.