Étapes à suivre pour masquer le fait qu'un site utilise WordPress?

135

J'ai un site Web pour lequel nous essayons d'être discret sur le fait que nous utilisons WordPress. Quelles mesures pouvons-nous prendre pour que ce soit moins évident?

MODIFIER - Remarque de sécurité importante:

S'il vous plaît, comprenez qu'il est impossible de le faire parfaitement, selon la réponse de Mark, ne vous fiez pas à cela une mesure de sécurité.

    
posée Casebash 08.09.2010 - 08:42

13 réponses

123

Les plus gros cadeaux WordPress se situent entre les balises <head> </head> .

Exemple de contenu de tête WordPress généré par The Twentyten Theme et comment le supprimer:

<link rel="profile" href="http://gmpg.org/xfn/11" /> 

Supprimer directement de header.php

 <link rel="stylesheet" type="text/css" media="all" href="http://example.com/wp-content/themes/twentyten/style.css" /> 

Cachez WordPress en appelant votre feuille de style à partir d’un autre emplacement et modifiez le répertoire wp-content. WordPress nécessite que votre thème inclue des informations de base en haut de style.css (style.css doit se trouver dans le répertoire racine des thèmes). Vous devrez créer un autre CSS et l'appeler de votre tête. WordPress ne vous oblige pas à utiliser les thèmes style.css, il doit uniquement figurer dans le répertoire themes.

Supprimer directement de header.php

<link rel="alternate" type="application/rss+xml" title="Example Blog &raquo; Feed" href="http://example.com/feed/" /> 
<link rel="alternate" type="application/rss+xml" title="Example Blog &raquo; Comments Feed" href="http://example.com/comments/feed/" />    
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd" /> 
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='Example Blog' href='http://example.com/' /> 
<meta name="generator" content="WordPress 3.1-alpha" /> 

Pour supprimer ces liens supplémentaires, vous pouvez ajouter un filtre à functions.php

// remove junk from head
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);

Vous pouvez modifier votre répertoire de plug-ins et votre répertoire wp-content dans votre fichier wp-config.php, mais vous pourriez rencontrer des problèmes si votre thème ou des plugins n'utilisent pas la méthode appropriée pour appeler des fichiers.

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/new-wp-content' );

Définissez WP_CONTENT_URL sur l'URI complet de ce répertoire (sans barre oblique), par exemple.

define( 'WP_CONTENT_URL', 'http://example/new-wp-content');

Facultatif Définissez WP_PLUGIN_DIR sur le chemin d'accès local complet de ce répertoire (sans barre oblique), par exemple

.
define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/new-wp-content/new-plugins' );

Définissez WP_PLUGIN_URL sur l'URI complet de ce répertoire (sans barre oblique finale), par exemple.

define( 'WP_PLUGIN_URL', 'http://example/new-wp-content/new-plugins');

PLUGINS

Sachez que certains plugins tels que Akismat, le référencement tout en un, W3-Total-Cache, le super cache et bien d’autres ajoutent des commentaires à la sortie HTML. La plupart sont faciles à modifier pour supprimer les commentaires, mais vos modifications seront écrasées à chaque mise à jour des plugins.

wp-comprend

Le répertoire wp-includes contient jquery et divers autres fichiers js que des thèmes ou des plugins vont appeler à l’aide de wp_enqueue_script (). Pour changer cela, vous devrez désenregistrer les scripts WordPress par défaut et enregistrer le nouvel emplacement. Ajouter à functions.php:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

Cela devra être fait avec chaque script utilisé par votre thème ou vos plugins.

    
réponse donnée Chris_O 08.09.2010 - 09:50
45

Un bit souvent oublié: supprimez readme.html dans la racine WordPress. Il identifie non seulement l'installation en tant que WP mais possède également une version précise. Et n'oubliez pas de répéter les mises à jour.

Question connexe: interdire l'accès ou supprimer automatiquement le fichier readme.html, license.txt, wp-config-sample.php

    
réponse donnée Rarst 13.09.2010 - 08:25
21

J'ai toujours utilisé la méthode du thème Roots .
Mais l’appliquer à ces ThemeJungle est généralement un gros casse-tête.

Alors, commencé à jouer avec les constantes WP_CONTENT_* . Ce qui, à mon avis, est une méthode beaucoup moins sujette aux erreurs et c’est ce que je travaille actuellement:


/mestledossieruploads,/testlethemesfolderet/t/testledossierduthèmeactif.Lesiten'estpascomplexe,doncpeud'actifschargés...

WP_CONTENTLESS

wp-config.php

Définitiondewp-contentàlaracine(/public_html/)dusite.

/**InsideWP_CONTENT,thefollowingfoldersshouldexist:/languages,/mu-plugins,/plugins,/themes,/upgrade,/uploadsTheWP_CONTENT_*definitionsbellowREMOVEtheexistenceofthe/wp-contentfolderandmakesitscontentsresideintheROOTofyoursiteUTTERMOSTattentionisnecessarywhendoingfilemaintenanceactivitiesintheserver(i.e.:WPupgrades,newWebmaster...),astheThemesandPluginsfoldersaremeanttoberenamedto/tand/p(seriouscandidatesforunthoughfulremoval)PLEASEnote:-wechangethePluginsfolderinWP_PLUGIN_*definitions-theThemesfolderischangedbyaMustUsePlugin(/mu-plugins/set-extra-themes-folder.php)-theUploadsfolderischangedinWordPresssettingspage(http://example.com/wp-admin/options-media.php)-thehardcodepathtobeusedinWP_CONTENT_DIRandWP_PLUGIN_DIRcanbecheckedusinganactioninsidetheset-extra-themes-folderPlugin(checkthecommentsinthisfile)*/define('WP_CONTENT_DIR','/www/htdocs/username/public_html');define('WP_CONTENT_URL','http://www.example.com');define('WP_PLUGIN_DIR','/www/htdocs/username/public_html/p');define('WP_PLUGIN_URL','http://www.example.com/p');

J'aiposélaquestionàcesujetdans [wp-hackers] - Problèmes de réglage WP_CONTENT_DIR (et URL) vers DOCUMENT_ROOT? , où John Blackbourn 1 , Mike Little 2 et Otto 3 ont eu l'amabilité de bien vouloir conseiller:

  

1
>   Cette structure est active sur un site depuis 18 ans.   mois et n'ont pas vu de problèmes. Comme pour tout changement à la   emplacement du répertoire de contenu, vous devez revérifier toute   les plugins que vous ajoutez au site ne supposent pas que le répertoire de contenu est   à wp-content .

     

2
  Il y a des discussions sur le net le $_SERVER['DOCUMENT_ROOT'] peut être   susceptible de piratage. Dans ce cas, cela est extrêmement dangereux car   il y a beaucoup d'endroits que require() ou include() WP_CONTENT_DIR .   'quelque chose';

     

3
  Il y a des cas où le contenu de $_SERVER peut être parfaitement sécurisé,   mais pour des raisons de sécurité, il est préférable de toujours le traiter comme   données non fiables. Pour ce cas spécifique, codez en dur le répertoire.

Un nouveau dossier de thèmes

/mu-plugins/set-extra-themes-folder.php

Comme il n'y a pas de constante WP_THEMES_* , nous avons besoin de la fonction register_theme_directory () pour " Enregistrer un répertoire qui contient des thèmes. "
J'ai essayé de définir le répertoire supplémentaire à la racine, mais les résultats sont drôles (c'est-à-dire que cela ne fonctionne pas).

<?php
/*
    Plugin Name: Set Extra Themes Folder
    Version: 1.0
    Description: Allows the directory - http://example.com/t - to be used as an extra theme's directory
    Plugin URI: http://wordpress.stackexchange.com/questions/1507
    Author: brasofilo
    Author URI: http://rodbuaiz.com
*/


/**
 * Remove the comment from the following line to know the correct path to put in register_theme_diretory()
*/
//add_action( 'admin_head', 'brsfl_alert_directory_path' );

function brsfl_alert_directory_path()
{
    echo '<script type="text/javascript">
        alert("Directory: '.$_SERVER['DOCUMENT_ROOT'].'");
    </script>';
}


/**
 * The following will enable the directory "t" to be used as an EXTRA Themes directory
*/
register_theme_directory( '/www/htdocs/username/public_html/t' );


/**
 * De-registering default scripts in wp-includes for CDN ones
*/
add_action('init', 'brsfl_init_scripts');

function brsfl_init_scripts() 
{
    if ( !is_admin() ) 
    {
        wp_deregister_script( 'jquery' );
        wp_deregister_script( 'swfobject' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', false, '1.7.1' );
        wp_register_script( 'swfobject', 'https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js', false, null, true );
        wp_enqueue_script( 'jquery' );
        wp_enqueue_script( 'swfobject' );
    }
}

Dossier de téléchargement

/wp-admin/options-media.php

Au lieu de http://example.com/uploads , ce sera http://example.com/m .
Décocher Organize my uploads into... donnera une apparence WPless aux URL des ressources.
Si le site est actif, une recherche / remplacement doit être effectué dans la base de données et les fichiers doivent être déplacés.

Plug-ins et contenu principal

Référez-vous à Cris_O Réponse dans cette question.

Readme.html

Référez-vous à Rarst Réponse dans cette question.

Autres étapes

Comme d'habitude, les thèmes ThemeJungle peuvent provoquer des piratages spécifiques dans le thème.
Par exemple, TimThumb ne fonctionne pas (!!! lol !!!).

    
réponse donnée brasofilo 15.07.2012 - 20:40
10

Vous pouvez avoir WordPress sur un serveur et supprimer votre contenu d'un autre uniquement en incluant le contenu dont vous avez besoin.

Si vous avez besoin de RSS, vous devrez en faire autant.

En réalité, ce serait comme si vous serviez des pages statiques à partir d’un proxy ou d’un CDN, mais uniquement les bits que vous voulez servir. Vous pouvez également simplement utiliser un système de commentaires basé sur JavaScript tel que Disqus.

Très peu de ressources utilisées, car il n’existe aucune base de données sur le serveur servant le contenu.

    
réponse donnée AndyBeard 13.09.2010 - 00:58
9

La seule réponse valide: IMPOSSIBLE

Tant de réponses à haut vote .... le temps de mettre les choses au clair. Eh bien, la vérité est que c'est virtuellement impossible et même si c'est le cas, la vie est probablement trop courte pour y consacrer des efforts. Toute réponse, qui favorise les étapes pour cacher WP est juste une perte de temps et vous induira en erreur en pensant que vous cachez votre WP (c'est absurde).

1) Le problème n’est pas évident: wp-* urls, la méta du générateur, etc. Les problèmes difficiles concernent les modèles associés à Wordpress qu’un système développé localement ne se donnera pas la peine d’appliquer comme les pages d’auteurs, année, mois, etc. pages de jour, utilisez p = nnn comme paramètre valide, définissez un formulaire de commentaire avec la classe de commentaire wordpress, la structure et les noms des liens, puis effectuez la promotion automatique des plugins de mise en cache et de yoast SEO, ainsi que de nombreux autres plugins visibles uniquement lorsque vous inspectez le code HTML lui-même.

2) Il existe d'autres méthodes non comptées qui montrent l'existence de WP (et vous ne pouvez pas battre cela):

  • Même l'en-tête de réponse php (comme noté par Dan Gayle sous ma réponse) renvoie l'en-tête de WP spécifique.

  • N'importe qui peut simplement interroger l'un des fichiers .php racine des dizaines: site.com/wp-cron.php ou site.com/xmlrpc.php (ou autre, que vous ne pouvez pas masquer) et la réponse de l'en-tête sera 200 au lieu de 404 not found .

  • n'importe qui peut vérifier que les points de terminaison JSON obtiennent une réponse spécifique à WP.

  • Dans la page HTML, un grand nombre de .css ou .js fichier contient des phrases spécifiques qui font clairement référence à WP.

  • Dans la page HTML, il est facile de trouver les classes elements / css, comme <div class="entry-content post-14"... ou etc (ce qui est une indication directe que la structure utilisée est celle de WP)

  • Dans la page HTML, vous verrez facilement le dossier uploads ou même si vous le renommez avec un codage en dur, la partie de date telle que uploads/2018/05/image.jpg (ou même image-315x225.jpg ) affiche la structure typique de WP .

  • étant donné que de nombreux sites sont maintenant construits à l'aide de MultiSite,% c_de% dans les liens sont utilisés ...

  • envoyez une requête ping à un fichier Lisez-moi de plugins / thèmes (le contenu en contient), comme /site/2 , renvoyant le statut plugin-name/readme.txt .

  • et beaucoup, beaucoup d'autres choses que vous (ou même les professionnels) serez incapables de cacher et perdront vos journées!

conclusion

Et même si vous vous efforcez de nettoyer tout ce qui indique qu’il s’agit d’une wordpress, vous devrez peut-être refaire ou au moins revérifier après chaque plugin ou mise à niveau principale. La vie est trop courte pour cela.

Vous pouvez induire en erreur certains diluants, mais vous ne pouvez vous cacher d’un bon inspecteur. Si cela est fait en tant que mesure de sécurité, alors c’est toujours la sécurité par l’obscurité qui est fausse, et si vous avez simplement honte d’utiliser Wordpress, laissez-moi vous dire quelque chose - personne ne se soucie de vous, et même le très petit nombre qui ne le fera probablement pas. savoir comment le résoudre par lui-même.

La seule chose qui compte, c’est de protéger le plus possible WP et de surveiller ses mises à jour régulières.

    
réponse donnée Mark Kaplun 12.08.2015 - 19:09
7

Vous pouvez créer votre adresse personnalisée pour vous connecter à votre blog. En n'utilisant pas le chemin classique «myblog.com/wp-admin» pour accéder à votre tableau de bord Cette page vous aidera à créer des connexions furtives. Ceci est également utile pour les mesures de sécurité.

Ainsi, le ppl qui ajoute wp-admin à votre blog ne pourra pas deviner:)

    
réponse donnée mireille raad 08.09.2010 - 18:49
5

En plus de ce qui précède, vous devez verrouiller l'accès aux différents fichiers et répertoires wp* . Si quelqu'un voulait savoir si vous utilisiez WP, il pourrait deviner si vous aviez wp-settings.php ou s'il pouvait accéder à un répertoire. Renvoyer une 403 n'est pas suffisant car il indique à l'utilisateur que la ressource existe. ils n'y ont tout simplement pas accès.

Je ne suis pas un expert sur Apache, j'ai donc demandé à ceci question sur sur serverfault.

    
réponse donnée Avery Chan 19.06.2011 - 07:41
3

N'oubliez pas qu'un grand nombre d'informations d'en-tête http envoyées avec votre demande peuvent identifier votre site comme étant en cours d'exécution sur WordPress. Par exemple, si vous consultez les en-têtes sur les sites suivants, il est évident que:

$ curl -I http://www.rollingstones.com/
Server: WP Engine/5.0

$ curl -I http://www.mattcutts.com
X-Powered-By: W3 Total Cache/0.9.1.3

$ curl -I http://blogs.reuters.com/us/
WP-Super-Cache: Served supercache file from PHP

Certaines d'entre elles sont définies par le serveur, d'autres par des plugins. Il n'y a donc aucun moyen de dire comment en supprimer 100%, mais si vous utilisez PHP 5.3, vous pouvez utiliser

.

header_remove("X-Foo"); ( enlace )

pour supprimer un en-tête PHP connu avant que votre contenu ne soit expulsé. Je ne peux pas dire avec certitude où placer ceci (peut-être que quelqu'un d'autre peut apporter cette information), mais il est probablement prudent de le placer tout en haut de votre index.php AVANT tout contenu envoyé au navigateur.

    
réponse donnée Dan Gayle 01.01.2014 - 02:40
3

Cela peut être difficile à réaliser si vous débutez avec php et mod_rewrite. Je vous suggère donc de vérifier avec la section de ma réponse. Ou essayez vous-même, vous pouvez utiliser quelque chose comme ceci pour masquer la structure de chemin d'accès wp-content / plugins:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^modules/(.*) /wp-content/plugins/$1 [L,QSA]
</IfModule>

Ceci changera le chemin d'accès à / modules. Utilisez quelque chose de similaire pour une autre structure, vous aurez peut-être besoin de quelques réécritures avancées, voir enlace pour plus d'informations sur mod_rewrite .

Si vous préférez quelque chose hors de la boîte, il y a quelques plugins intéressants, certains commerciaux, également gratuits sur le référentiel WordPress, je suggère d'essayer WP Hide & Renforcement de la sécurité . Cela inclut beaucoup de choses et aide à changer à peu près tout pour rendre votre WordPress méconnaissable. Voici quelques fonctionnalités du code:

  • URL personnalisée de l'administrateur
  • URL personnalisée de l'administrateur
  • Bloquer l'URL d'administration par défaut
  • Bloquer tout accès direct aux dossiers pour masquer complètement la structure
  • Nom de fichier wp-login.php personnalisé
  • Bloquer les wp-login.php par défaut
  • Bloquer les wp-signup.php par défaut
  • Bloquer l'API XML-RPC
  • Nouveau chemin XML-RPC
  • URL du thème ajustable
  • Nouvelle URL du thème enfant
  • Changer le nom du fichier de style de thème
  • wp-include personnalisé
  • Bloquer les chemins d'accès wp-include par défaut
  • Bloquer le contenu de wp-defalt
  • URL des plugins personnalisés
  • Modification individuelle de l'URL du plug-in
  • Bloquer les chemins d'accès des plugins par défaut
  • Nouvelle URL de téléchargement
  • Bloquer les URL de téléchargement par défaut
  • Supprimer la version wordpress
  • bloc Meta Generator
  • Désactivez les émoticônes et le code javascript requis
  • Supprimer la balise pingback
  • Supprimer la méta de wlwmanifest
  • Supprimer le méta rsd_link
  • Supprimer wpemoji

et beaucoup plus ..

    
réponse donnée WP-Silver 25.03.2016 - 12:53
2

Je ne veux pas répéter les options de codage car elles ont été couvertes de manière exhaustive. L’autre option qui fonctionne est l’utilisation d’un plugin masquant wp. J'ai utilisé ce plugin auparavant à des normes satisfaisantes. Son appelé cacher mon WordPress.

    
réponse donnée NJENGAH 25.03.2015 - 10:54
2

La plupart des réponses se concentrent sur l’obscurcissement de WordPress dans le code source d’une page, mais même avant cela, WP s’était déjà révélé dans l’en-tête http d’une installation standard. Essayez simplement votre propre site sur un site tel que Web-sniffer (prétendez être IE 6 et demandez un en-tête http 1.0) et vous aurez voir que parmi les retours est:

<http://www.example.com/wp-json/>; rel="https://api.w.org/"

Ce dernier est un lien vers l'API Wordpress.org . C'est là depuis que l'API REST a été incluse dans WP 4.4. Vous pouvez le supprimer avec cette ligne dès le début de votre functions.php :

remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

De nombreux plugins, comme Jetpack pour ses liens courts, peuvent également insérer des liens dans l’en-tête http. Ils peuvent le faire, car WP dispose d’une API HTTP , qui permet de manipuler les en-têtes. Vous pouvez utiliser cette interface pour supprimer tous les paramètres d'en-tête des plug-in si vous ajoutez votre action assez tard dans le processus.

Enfin, vous pouvez utiliser l’ interface en-tête .htaccess pour intercepter tout ce que fait WP. . Par exemple, vous pouvez empêcher l’envoi d’en-têtes de lien en incluant cette ligne:

<IfModule mod_headers.c>
Header unset Link
</IfModule>
    
réponse donnée cjbj 22.08.2016 - 15:55
0

Vous pouvez personnaliser un thème pour exclure toutes les informations WordPress. Supprimez également les métadonnées et les widgets susceptibles de générer des informations sur la plate-forme.

Personnellement, je préfère montrer ma gratitude en indiquant que je me sers de WordPress.

    
réponse donnée James 08.09.2010 - 17:43
-1

Vous pouvez utiliser le plug-in WPS Masquer la connexion .
Vous vous connectez à votre wordpress avec wp-admin . Mais vous pouvez changer wp-admin en custom en utilisant ce plugin.

Exemple:

Avant: http://example.com/wp-admin
Après: http://example.com/custom-text-to-login

    
réponse donnée user123002 10.07.2017 - 18:01

Lire d'autres questions sur les étiquettes