Quelle est la configuration idéale pour répondre aux problèmes de sécurité?

8

Je connais les exigences de WP pour que certains répertoires et fichiers soient accessibles en écriture. Je suis également conscient que le fait de laisser des autorisations trop lâches peut ouvrir des failles de sécurité. Enfin, je sais que l'utilisateur qui (insérez votre serveur ici) fonctionne comme sur les systèmes Linux peut être un facteur.

Hormis la sécurité, j'aime pouvoir télécharger des thèmes et des plugins sur mon blog, et les mettre à jour si nécessaire. Les autorisations appropriées semblent un peu en contradiction avec cette préférence.

J'ai rassemblé de petits détails ici et là, mais j'aimerais voir une réponse plus définitive, s'il y en a une: quelle est la configuration préférée avec un clin d'œil à la sécurité? Quelles autorisations doivent être en place, quel utilisateur le site doit fonctionner, etc.

Grant Palin
la source

Réponses:

10

Si vous avez un accès FTP à votre serveur, la configuration la plus sécurisée n'est pas d'avoir votre répertoire de thèmes ou de plugins inscriptible par votre serveur Web et d'avoir à la place des fichiers de mise à jour WordPress via FTP. Lorsque vous allez mettre à jour un plugin, WordPress vous demandera vos détails FTP.

La méthode FTP est beaucoup plus lente que l'écriture directe de fichiers, mais elle est beaucoup plus sécurisée car un script escroc ne pourra pas modifier vos fichiers.

Viper007Bond
la source
5
SFTP est encore mieux
Ashley G
3
Le FTP est acceptable en interne, mais me rend nerveux sur Internet; car il envoie des mots de passe sur du texte brut. Je transfère via SFTP / SSH, je me sens plus à l'aise pour déplacer des fichiers sur un canal sécurisé. Je n'autorise pas non plus les autorisations d'écriture pour l'utilisateur du serveur Web.
JM Becker
8

Comme l'a noté @ Viper007Bond, la mise à jour de votre noyau, de vos plugins et de vos thèmes via les mécanismes de mise à jour intégrés est assez sûre, en ce qui concerne les autorisations de fichier, car ils peuvent utiliser vos informations d'identification d'utilisateur réelles. Pour une sécurité maximale, vous devez vous assurer que l' extension PHP SSH2 est installée. La méthode d'installation (si possible) peut varier d'un hôte à l'autre, donc si elle n'est pas déjà là, vous devrez peut-être demander au service d'hébergement ou faire des recherches sur Google.

De nombreux services d'hébergement partagé utiliseront suexecdans leur configuration Apache, afin que le service Web fonctionne en tant qu'utilisateur réel. Cela élimine la plupart des problèmes d'autorisation et aide à protéger vos fichiers contre les autres utilisateurs du serveur. Cependant, dans les cas où Apache s'exécute en tant qu'utilisateur distinct, si vous souhaitez télécharger des fichiers dans WordPress, vous devez ouvrir des autorisations sur le répertoire de téléchargement.

Dans ce cas, vous souhaitez probablement que votre wp-content/uploadsrépertoire dispose d' 0713autorisations (AKA rwx--x-wx). Cela donne au propriétaire du répertoire des autorisations complètes, son groupe peut lire des fichiers s'il connaît le chemin complet, et d'autres (y compris le serveur Web) peuvent lire des fichiers dont ils connaissent le chemin et peuvent créer / écrire des fichiers.

Certains plugins de mise en cache s'attendent également à disposer d'un wp-content/cacherépertoire (ou similaire) sur lequel ils peuvent écrire. Les mêmes conseils d'autorisation s'appliqueraient à cela.

Enfin, pour de jolis permaliens, WordPress doit pouvoir modifier le .htaccessfichier, sauf si vous prévoyez de le mettre à jour manuellement. Dans ce cas, vous souhaitez 0646le mode fichier. Cependant, une fois que vous avez défini votre structure de permalien, vous n'aurez normalement pas besoin de la modifier à nouveau, vous pouvez donc désactiver les autorisations d'écriture supplémentaires et la définir sur 0644. Parfois, un plugin ou une mise à niveau de base peut nécessiter un accès à celui-ci, et vous pouvez réactiver temporairement les autorisations d'écriture pour cela, puis le désactiver à nouveau.

Tous les autres fichiers doivent avoir des 0644autorisations. Les répertoires devraient l'être 0711si vous êtes extra-paranoïaque, mais cela pourrait interférer avec tous les plugins qui ont besoin d'obtenir une liste de fichiers à partir d'un répertoire. Dans ce cas, ou si vous n'êtes pas aussi paranoïaque, utilisez 0755, ce qui permettra aux autres de lire, mais pas d'écrire.

La plupart de cela est principalement une préoccupation si vous êtes sur un hébergement partagé. Si vous avez un serveur dédié (y compris VPS), sans aucun autre utilisateur ayant un accès ssh / ftp, alors vous pouvez vous détendre un peu plus. Je ne veux pas dire que vous devez simplement rendre tout accessible en écriture, mais vous pouvez probablement simplement faire confiance aux valeurs par défaut du système, qui seront probablement des 0755autorisations sur les répertoires au lieu de 0711.

Si c'est une option, installez un certificat SSL pour le site et une fois que vous avez testé que vous pouvez accéder à votre site via https, vous pouvez forcer SSL pour les connexions administrateur et l'accès en ajoutant ces lignes à votre wp-config.phpfichier, juste avant le ' Arrêter la modification du commentaire:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
Dougal Campbell
la source