web-dev-qa-db-fra.com

Sécurité et .htaccess

Il y a environ un mois, j'ai lancé un blog WordPress sur un serveur hébergé lié à un passe-temps. Donc, je suis nouveau à cela pour le moment.

Étant donné que je suis préoccupé par la sécurité, j'ai notamment installé le plug-in WP Security Scan. Selon les résultats du plug-in, mon site effectue une vérification, sauf que les résultats apparaissent sous forme de drapeau rouge:

Le fichier .htaccess n'existe pas dans wp-admin/(j'ai ssh'd dedans et il n'existe pas)

Ok, j'ai donc fait une recherche considérable sur la question et trouvé trop d'informations sur .htaccess. Je suis passé par Hardening WordPress sur le site WordPress.org, etc. Et aussi dans cet article: http://digwp.com/2010/07/wordpress-security-lockdown/

Quoi qu’il en soit, je me suis en gros laissé confondre avec la pléthore d’informations disponibles.

Que doit contenir le fichier .htaccess dans wp-admin? J'ai lu que ce fichier .htaccess devait protéger le répertoire wp-admin par un mot de passe et j'ai aussi lu que cela pouvait causer des problèmes de fonctionnalité.

L'aide avec ceci est grandement appréciée.

Merci. -wdypdx22

Update Ok, je ne suis donc pas connecté à mon blog et n'utilise pas un ordinateur différent de celui habituel. J'entre l'URL www.monsite.com/wordpress/wp-admin/ et il y a une redirection pour vous connecter. Si c'est ce qui se produit, un fichier htaccess est-il même nécessaire dans le répertoire wp-admin?

8
wdypdx22

UPDATE: Lorsque j'ai posté ma réponse pour la première fois, j'ai raté l'essentiel de la question; Ma réponse portait sur la sécurité de .htaccess en général et figure maintenant sous la ligne double (regardez si cela vous intéresse.) Malheureusement, je n'ai pas d'expérience spécifique en matière de sécurisation de /wp-admin/ avec .htaccess et je vais donc simplement énumérer les deux ressources que je vais poursuivre. quand et si j'en ai besoin:

Le premier recommande ce qui suit (et voici quelques discussions à ce sujet .)

<Files ~ "\.(php)$">
AuthUserFile /etc/httpd/htpasswd
AuthType Basic
AuthName "restricted"
Order Deny,Allow
Deny from all
Require valid-user
Satisfy any
</Files>

Ce dernier contient de nombreuses informations, notamment dans les commentaires, mais vous fournir une liste à lire n’est certes pas la réponse que vous recherchiez.

Désolé je n'aurais pas pu être plus utile sur celui-ci.

=======================================

Typiquement, WordPress ne gère que le traitement permalien et n’est pas lié à la sécurité:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Récemment, j'ai trouvé le plugin WP htacess Control qui gère beaucoup de .htaccess pour vous et je l'aime plutôt beaucoup. Après avoir peaufiné ses paramètres, il a ajouté les options suivantes:

# WPhtC: Disable ServerSignature on generated error pages
ServerSignature Off

# WPhtC: Disable directory browsing
Options All -Indexes

# WPhtC: Protect WP-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

# WPhtC: Protect .htaccess file
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
</files>

Il a également ajouté ces options qui concernent les performances plutôt que la sécurité:

# WPhtC: Setting mod_gzip
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

# WPhtC: Setting mod_deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</IfModule>

Au-delà de celui-ci, il existe des plugins que je n'ai pas encore essayés mais qui sont centrés sur la sécurité et qui interagissent avec .htaccess - vous pouvez les essayer chacun pour voir ce qu'ils font dans le fichier .htaccess:

Au-delà, si vous souhaitez connaître la ressource experte (OMI) # 1 sur Sécurité Apache liée à WordPress vous pouvez le trouver sur AskApache.com ; mec est hardcore! Son blog ne résoudra pas votre problème "trop d'informations} _" mais vous pouvez au moins le voir comme une ressource faisant autorité!

Voici quelques exemples (bien que tous ne soient pas directement liés à WordPress, ils sont tous applicables):

Quoi qu'il en soit, espérons que cela aide.

8
MikeSchinkel

L'idée sous-jacente, si vous avez des fichiers étranglés suspendus derrière des mises à niveau antérieures ou des attaques "zero day", votre système pourrait être piraté. Sécuriser également wp-admin par une autre méthode aidera à lutter contre les attaques par force brute.

Une idée) Si vous ne modifiez que le site, vous pouvez limiter l’accès au dossier en effectuant quelque chose comme suit:

<Files *>
Order deny,allow
Deny from All
Allow from 1.2.3.4
</Files>

Pour le rendre un peu plus tolérable pour les systèmes IP dynamiques; vous devriez pouvoir autoriser à partir d'un sous-bloc, donc si votre pool d'adresses IP est toujours compris entre 1.2.3.128 et 1.2.3.255, vous pouvez faire quelque chose comme 1.2.3.128/25

Une autre idée) nécessite HTTPS, donnez une autorisation refusée s’ils l’essaient via http. Mais ne les redirige pas vers le https. Vous pouvez utiliser un certificat auto-signé ou un certificat de CA Cert pour vous en passer sans en acheter un.

4
Ryan Gibbons

J'inclus toujours un fichier .htaccess dans wp-admin, même si je n'y mets jamais rien, car il nie le fichier du répertoire racine. Certaines personnes utilisent le fichier .htaccess de wp-admin pour masquer l’ensemble du répertoire, sauf une adresse IP, d’autres l’utilisent pour protéger le répertoire par mot de passe.

Cependant, le mot de passe protégeant la section admin avec .htaccess désactivera les communications ajax, car elles interagissent avec wp-admin/admin-ajax.php.

En général, je ne vois pas beaucoup de raisons d'ajouter quoi que ce soit au fichier admin .htaccess sauf si vous êtes extrêmement paranoïaque. Les attaques ciblent généralement wp-content de toute façon.

0
John P Bloch