web-dev-qa-db-fra.com

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

Je suis conscient des conditions requises par WP pour que certains répertoires et fichiers soient accessibles en écriture. Je suis également conscient que rendre les 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.

Côté sécurité, j'aime bien 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 être un peu en désaccord avec cette préférence.

J'ai rassemblé des petits détails ici et là, mais j'aimerais voir une réponse plus précise, le cas échéant: 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-il exécuter, etc.

8
Grant Palin

Si vous avez un accès FTP à votre serveur, la configuration la plus sécurisée consiste à ne pas laisser votre répertoire de thèmes ou de plugins en écriture sur votre serveur Web, mais à faire en sorte que WordPress mette à jour les fichiers 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 les écritures directes de fichiers, mais elle est beaucoup plus sécurisée, car un script non autorisé ne pourra pas modifier vos fichiers.

10
Viper007Bond

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

De nombreux services d'hébergement partagé utiliseront suexec dans leur configuration Apache, de sorte que le service Web s'exécute en tant qu'utilisateur réel. Cela élimine la plupart des problèmes d'autorisation et protège vos fichiers des autres utilisateurs du serveur. Toutefois, 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 souhaiterez probablement que votre répertoire wp-content/uploads dispose des autorisations 0713, (AKA rwx--x-wx). Cela donne au propriétaire du répertoire des autorisations complètes, son groupe peut lire les fichiers si il connaît le chemin complet, et d’autres (y compris le serveur Web) peuvent lire les fichiers dont il connaît le chemin et peut créer/écrire des fichiers.

Certains plugins de mise en cache s'attendent également à disposer d'un répertoire wp-content/cache (ou similaire) dans lequel ils peuvent écrire. Le même avis sur les autorisations s'appliquerait à cela.

Enfin, pour de jolis permaliens, WordPress doit pouvoir modifier le fichier .htaccess, sauf si vous envisagez de le mettre à jour manuellement. Dans ce cas, vous voudriez 0646 pour le mode fichier. Cependant, une fois que vous avez défini votre structure de lien permanent, vous n'avez normalement pas besoin de la modifier à nouveau. Vous pouvez donc désactiver les autorisations d'écriture supplémentaires et définir le paramètre sur 0644. Occasionnellement, un plugin ou une mise à niveau principale peut nécessiter un accès, et vous pouvez réactiver temporairement les autorisations d’écriture pour cela, puis le désactiver à nouveau.

Tous les autres fichiers doivent avoir les autorisations 0644. Les répertoires doivent être 0711 si vous êtes extra-paranoïaque, mais cela pourrait interférer avec les plug-ins qui doivent 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 ceci est principalement une préoccupation si vous êtes sur l'hébergement partagé. Si vous avez un serveur dédié (y compris VPS) et qu'aucun autre utilisateur ne dispose d'un accès ssh/ftp, vous pouvez vous détendre un peu plus. Je ne veux pas dire que vous devriez simplement tout rendre ouvert en écriture, mais vous pouvez probablement simplement faire confiance aux valeurs par défaut du système, qui seront probablement des autorisations 0755 sur des répertoires au lieu de 0711.

Si c'est une option, installez un certificat SSL pour le site, et une fois que vous aurez 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 fichier wp-config.php, juste avant. le commentaire 'Arrêter la modification':

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
8
Dougal Campbell