(Je suis conscient que la sécurité via l'obscurité n'est pas recommandée).
J'essaie de cacher le fait que j'utilise Wordpress. Ce message est utile, mais il ne traite que du contenu (en quelque sorte). Je souhaite que les événements suivants se produisent:
L'utilisateur essaie d'accéder à n'importe quelle URL avec
wp*
comme sous-chaîne via son navigateur.Résultat: redirigé vers la page 404.
L'utilisateur / l'administrateur du blog sait qu'il doit se connecter pour se connecter
http://example.com/blogin/
.Résultat: apache les redirige vers
http://example.com/wp-admin/
.Si un utilisateur essaie d'accéder directement à
wp-admin
partir de son navigateur, il est envoyé au n ° 1.Résultat: redirigé vers la page 404.
Les choses que j'ai faites jusqu'à présent
J'ai remarqué pour une installation par défaut de WordPress que je pouvais accéder à tous les
wp*
fichiers du répertoire racine (relatif) de l'installation WP. Plus précisément, cela awp-settings.php
été problématique, car cela a donné des informations sur ma configuration. Si un utilisateur y accédait, il cracherait quelques erreurs PHP et révélerait une partie de la structure du répertoire. J'ai modifié mon fichier php.ini pour ledisplay_errors
désactiver. Maintenant, l'accèshttp://example.com/wp-settngs.php
fait apparaître une page vierge.Cela en soi n'est pas idéal car il révèle qu'il
wp-settings.php
existe. En fait, l'accès à tous les différentswp*
fichiers est possible (avec des résultats différents). J'ai ensuite mis ce qui suit dans mon fichier htaccess:RewriteEngine On RewriteBase / RewriteCond %{PATH_INFO} wp* [NC] RewriteRule .* - [F]
Cela a très bien fonctionné! Tout ce qui a un a
wp*
été acheminé vers ma page 404 personnalisée. Mais maintenant, je ne peux pas accéder à ma page d'administration.J'ai essayé d'insérer cette ligne dans le code ci - dessus:
RewriteRule ^blogin wp-admin [NC,R,L]
. C'était censé être juste après,RewriteBase
mais cela n'a pas fonctionné.J'ai essayé de faire:
<Directory /home/example/wp*> Order Allow, Deny Allow from example.com Deny from all </Directory>
en espérant qu'un référent de mon site (via la réécriture de la règle) serait en mesure d'accéder à wp-admin, mais pas à quelqu'un de l'extérieur. Cela n'a pas fonctionné non plus. apache s'est plaint que vous ne pouvez pas utiliser cette directive de htaccess.
J'ai lu la documentation d'apache; Je comprends les concepts, théoriquement, mais j'ai besoin d'une aide pratique.
EDIT: Je recherche une solution qui utilise .htaccess au lieu de httpd.conf car ma configuration particulière rend l'utilisation de httpd.conf incohérente.
la source
Réponses:
TLDR; Il n'est pas possible d'obscurcir WordPress en utilisant uniquement des directives dans votre fichier .htaccess.
Vient maintenant une histoire de malheur et d'horreur. Notre ami, fbh avait raison sur la difficulté de cacher WordPress, ce n'est pas pour les lâches à ventre jaune. Arr! Voici les détails de cette (mauvaise) aventure. Soyez prévenu!
Motivation
Je suis un de ces gars qui aiment les choses parfaites. Je
passede perdre du temps un peu plus de l' ingénierie à la « bonne façon ». L'une des choses que je n'aimais pas dans la configuration par défaut de WordPress était qu'un utilisateur pouvait taper http://ex.com/wp-settings.php et que tout ce jargon php cracherait partout. J'ai finalement réussi à désactiver les erreurs via PHP, mais cela a conduit à un plus grand désir de n'avoir que des choses qui faisaient depuis être des ressources localisables à partir du serveur ... et que tout le reste serait 404 / 3'ified sur notre page de recherche personnalisée. Après cela, j'ai eu l'idée que je voudrais cacher complètement le framework sous-jacent (c'est-à-dire WP) ... de toute façon ... si vous voulez cacher WP c'est possible. Mais c'est vraiment difficile.Étapes vers votre perte
Modifiez vos paramètres PHP ini de manière appropriée. (c.-à-d. désactiver les erreurs d'affichage) Vous pourriez penser que ce n'est pas nécessaire car si nous utilisons .htaccess pour rediriger les choses, les gens ne verront pas les erreurs car ils ne peuvent pas accéder aux ressources à l'origine des erreurs (je vous regarde
wp-settings.php
). Mais des erreurs peuvent survenir dans les pages affichées, vous devez donc absolument les supprimer. CeWP_*
n'est pas parce que les directives sont établies que les choses fonctionneront comme vous le pensez. J'ai constaté que sur mon serveur, je devais définir les display_errors sur false FIRST, car WP_DISPLAY_ERRORS supposait que le paramètre par défaut était false.Le contrôle des paramètres PHP ini peut être quelque chose d'aussi simple que de mettre une directive dans votre fichier .htaccess. Ou, dans mon cas, aussi compliqué que de créer un gestionnaire CGI puis d'y placer un fichier php.ini. YMMV en fonction de votre configuration.
Supprimez tout accès aux fichiers / répertoires avec
wp-
préfixe. L'idée est que votre déploiement WP concerne votre contenu, pas WP (sauf s'il est spécifiquement axé sur WP). Cela n'a aucun sens pour les gens de vouloir voir ce que http; // ex.com/wp-cron.php a ... à moins qu'ils ne soient pas bons. J'ai accompli cela via ceci:Apprenez à passer simplement par le mordor En supprimant tout accès à
wp-*
vous ne pouvez plus accéder à la partie administrative de WP. Ça craint vraiment. En plus de cet inconvénient, vous venez de réaliser que vous ne savez pas ceRewriteCond %{ENV:REDIRECT_STATUS} ^$
qui fait vraiment. Eh bien, ce que j'ai essayé de faire, c'est de me donner une porte dérobée «secrète» à la page d'administration de WP. J'ai utilisé ce code:L'URL: http://ex.com/mordor devrait donc nous amener à la page de connexion. La raison pour laquelle nous avons eu la
REDIRECT
ligne à l'étape ci-dessus est que, puisque cette URL est réécrite dans unewp-*
URL, nous ne voulons pas que la première règle de réécriture l'obtienne. Puisqu'il est redirigé en interne,REDIRECT_STATUS
il sera réglé correctement et il ne nous poussera pas à atterrir 403/4.Supprimer le contenu wp Wordpress.stackexchange a un excellent article sur la suppression du contenu wp. Vous devez redéfinir certaines constantes WP et cela fonctionne à peu près. Vous devez également rediriger tous les accès de
wp-content
vers «quel que soit le contenu». Ce ne sera probablement pas un problème s'il s'agit d'un déploiement propre. Si vous modifiez un déploiement préexistant, vous devrez faire des choses supplémentaires.Réécrivez les URL en wp-content facultatif
RewriteRule (.*)(wp-content)(.*) $1whatever-content$3 [NC,R,L]
. Cela va dans votre fichier .htaccess. Si votre utilisateur essaie d'accéder à du contenu ancien via unewp-content
URL, il sera redirigé ici.Grep et remplacez toutes les références au contenu wp dans votre base de données en option . Vous en avez encore
wp-content
dans votre base de données. Si vous voulez télécharger gratuitement WP, vous devez vous débarrasser de tout ça. J'ai exporté / mysql vidé ma base de données, fait une recherche et remplacé sur lawp-content
chaîne à la nouvelle chaîne. Vous pourriez dire ... pourquoi dois-je faire cela si apache va réécrire mes URL? Le problème est que le code source contiendra ces références, donc si vous êtes vraiment intéressé à obscurcir WordPress, vous devez le faire. Remarque: À ce stade, j'aurais dû m'arrêter et accepter la réalité que cela n'allait pas fonctionner. Mais je voulais que M. T me plains.Remplacez toutes les références à
wp-includes
etwp-admin
dans la source. Une grande partie de la fonctionnalité WordPress dépend de ces deux répertoires:wp-includes
etwp-admin
. Cela signifie que ces noms de répertoire sont codés en dur dans le code source. Cela signifie que vous devrez créer de nouveaux répertoires (puisque PHP utilise le système de fichiers OS sous-jacent, et non apache) pour y accéder, puis ÉCRIVEZ-LES DANS LE html émis. C'est tout simplement trop de problèmes. J'ai rapidement abandonné et je suis allé aux toilettes pour prendre un caca.Leçon
Bien sûr, j'aurais pu lire http://codex.wordpress.org/Hardening_WordPress et suivre ces étapes. Mais je voulais le site parfait. Maintenant, je veux juste retrouver toutes ces heures. La plus grande chose qui m'a empêché d'arrêter, c'est que je n'ai lu nulle part sur Internet que c'était beaucoup de travail et presque impossible à faire. Au lieu de cela, j'ai lu des gens qui essayaient de le faire sans savoir s'ils avaient réussi ou non. Donc, pour mon passé, à qui j'enverrai cela via Time Machine d'Apple, n'essayez pas d'obscurcir WordPress. Ça ne vaut pas le coup.
la source
wp-includes
etwp-admin
texte manuellement. Je suis sûr que vous avez parcouru chaque fichier et remplacé manuellement. C'est parce que vous avez manqué des logiciels utiles. Par exemple, vous auriez pu essayer grepwin ce qui rend ce travail plus facileSi vous essayez de cacher que vous utilisez wordpress à cause des crackers, alors vous avez vraiment du travail à faire. Si vous faites l'astuce wp *, qu'en est-il du contenu wp et des inclusions wp? Sans pouvoir les atteindre, vous casserez la page et elle aura l'air horrible.
De plus, il y a tellement de choses dans Wordpress que cela prend vraiment un peu de travail - et vous devrez probablement en refaire beaucoup une fois qu'une mise à niveau est installée. (Comme quelques redirections dans Apache ne feront pas l'affaire)
Si vous essayez simplement de le cacher à M. et Mme tout le monde, alors bien sûr, vous devriez être en mesure de le faire avec obscurité.
Avez-vous lu le guide "durcissement de Wordpress"? Sinon, vous devriez le vérifier: http://codex.wordpress.org/Hardening_WordPress Il donne une excellente introduction à beaucoup de choses que vous pouvez faire.
De plus, si vous êtes si désireux de cacher le fait que vous utilisez Wordpress, pourquoi l'utiliser?
la source
Essayez de faire votre configuration dans la configuration apache. Cela peut être une inclusion de fichier comme
/etc/wordpress/htaccess
. Cela vous permettra d'utiliser laDirectory
directive de configuration. Cependant, vous devrez redémarrer apache pour charger les modifications. Utilisez le redémarrage gracieux si vous ne voulez pas d'interruptions de service.Pour restreindre l'accès aux
.htaccess
répertoires avec des fichiers, ils doivent se trouver dans les répertoires appropriés. Ils fonctionnent comme le contenu d'uneDirectory
directive de configuration. Vous devrez peut-être activer les.htaccess
options requises dans votre configuration Apache. Cette méthode n'est pas aussi efficace que l'utilisation de la commande dans la configuration d'apache car elle doit être répétée fréquemment.la source
.htaccess
fichier dans le répertoire correspondant. Remarque: Apache vous recommande d'utiliser la configuration si possible. Utilisez le contrôle de version pour vous protéger contre les écrasements.