¿Pasos a seguir para ocultar el hecho de que un sitio está usando WordPress?

135

Tengo un sitio web para el cual intentamos ser discretos sobre el hecho de que estamos usando WordPress. ¿Qué pasos podemos tomar para que sea menos obvio?

EDITAR - Nota de seguridad importante:

Comprenda que hacer esto perfectamente es imposible según la respuesta de Mark, así que no confíe en esto como una medida de seguridad.

    
pregunta Casebash 08.09.2010 - 08:42

13 respuestas

123

Los regalos más grandes de WordPress están entre las etiquetas <head> </head> .

Ejemplo de salida de contenido del encabezado de WordPress por The Twentyten Theme y cómo eliminar:

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

Eliminar directamente de header.php

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

Oculte WordPress llamando a su hoja de estilo desde otra ubicación y cambie el directorio wp-content. WordPress requiere que su tema incluya información básica en la parte superior de style.css (style.css debe estar en el directorio raíz de temas). Necesitará crear un CSS alternativo y llamarlo desde su cabeza. WordPress no requiere que uses los temas style.css, solo requiere que esté en el directorio de temas.

Eliminar directamente 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" /> 

Para eliminar estos enlaces adicionales, puede agregar un filtro a 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);

Puedes cambiar tu directorio de complementos y tu directorio de contenido de wp en tu archivo wp-config.php, pero podrías tener algunos problemas si tu tema o algún complemento no usan el método adecuado para llamar a archivos.

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

Establezca WP_CONTENT_URL en el URI completo de este directorio (sin barra diagonal), por ejemplo

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

Opcional Establezca WP_PLUGIN_DIR en la ruta local completa de este directorio (sin barra diagonal), por ejemplo,

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

Establezca WP_PLUGIN_URL en el URI completo de este directorio (sin barra diagonal), por ejemplo

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

PLUGINS

Tenga en cuenta que algunos complementos como Akismat, All in One SEO, W3-Total-Cache, Super Cache y muchos otros agregan comentarios a la salida HTML. La mayoría son fáciles de modificar para eliminar los comentarios, pero los cambios se sobrescribirán cada vez que se actualicen los complementos.

wp-includes

El directorio wp-includes contiene jquery y varios otros archivos js que los temas o complementos llamarán usando wp_enqueue_script (). Para cambiar esto, deberá cancelar el registro de los scripts de WordPress predeterminados y registrar la nueva ubicación. Añadir a 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');

Esto deberá hacerse con cada secuencia de comandos utilizada por su tema o complementos.

    
respondido por el Chris_O 08.09.2010 - 09:50
45

Un bit que a menudo se omite: elimine readme.html en la raíz de WordPress. No solo identifica la instalación como WP, sino que también tiene una versión precisa. Y no olvides repetir las actualizaciones.

Pregunta relacionada: Impedir el acceso o eliminar automáticamente el archivo léame.html, license.txt, wp-config-sample.php

    
respondido por el Rarst 13.09.2010 - 08:25
21

Siempre he usado el método del tema de raíces .
Pero aplicarlo a los ThemeJungle que hay por lo general es un gran dolor de cabeza.

Entonces, comencé a jugar con las constantes WP_CONTENT_* . Lo cual creo que es un método mucho menos propenso a errores y esto es lo que estoy trabajando ahora mismo:


/meslacarpetauploads,/tesel%Lacarpetathemesy/t/teslacarpetadetemaactiva.Elsitionoescomplejo,porloquehaypocosactivoscargados...

WP_CONTENTLESS

wp-config.php

Estableciendowp-contentalaraíz(/public_html/)delsitio.

/**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');

Selohepreguntadoen [wp-hackers]: cualquier inconveniente en la configuración ¿WP_CONTENT_DIR (y URL) a DOCUMENT_ROOT? , donde John Blackbourn 1 , Mike Little 2 y Otto 3 tuvieron la amabilidad de aconsejar:

  

1
  He tenido esta estructura activa en un sitio durante los últimos 18   Meses y no he visto ningún problema. Como con cualquier cambio en el   ubicación del directorio de contenido, deberá verificar dos veces   Los complementos que agrega al sitio no asumen que el directorio de contenido es   en wp-content .

     

2
  Hay discusiones alrededor de la red que el $_SERVER['DOCUMENT_ROOT'] puede ser   susceptibles a la piratería. En cuyo caso esto es extremadamente peligroso porque   hay muchos lugares que require() o include() WP_CONTENT_DIR .   'algo';

     

3
  Hay casos en que el contenido en $_SERVER puede ser perfectamente seguro,   pero por razones de seguridad, es mejor tratarlo siempre como   datos no fiables. Para este caso específico, codifique el directorio.

Una nueva carpeta de temas

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

Como no hay WP_THEMES_* constantes, necesitamos la función register_theme_directory () para " registrar un directorio que contiene temas. "
Intentó establecer el directorio adicional en la raíz, pero los resultados son divertidos (es decir, no funciona).

<?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' );
    }
}

Cargar carpeta

/wp-admin/options-media.php

En lugar de http://example.com/uploads , será http://example.com/m .
Si se desactiva Organize my uploads into... , se dará una apariencia WPless a las URL de los activos.
Si el sitio está activo, se debe realizar una búsqueda / reemplazo en la base de datos y los archivos deben moverse.

Complementos y contenido principal

Consulte Cris_O Respuesta en esta pregunta & A.

Readme.html

Consulte Rarst Respuesta en esta pregunta & A.

Otros pasos

Como es habitual, los temas de ThemeJungle pueden provocar hacks específicos en el tema.
Como ... TimThumb no funciona (!!! lol !!!).

    
respondido por el brasofilo 15.07.2012 - 20:40
10

Puede tener WordPress en un servidor y eliminar su contenido de otro solo, incluido el contenido que necesita.

Si necesitas RSS, tendrías que hacer lo mismo con eso.

Efectivamente, sería como servir páginas estáticas desde un proxy o CDN, pero solo los bits que desea servir. También podría utilizar un sistema de comentarios basado en javascript como Disqus.

Uso de recursos realmente bajo, porque aquí no hay bases de datos en el servidor que sirve el contenido.

    
respondido por el AndyBeard 13.09.2010 - 00:58
9

La única respuesta válida: IMPOSIBLE

Muchas respuestas de alto voto ... es hora de aclarar las cosas. Bueno, la verdad es que es virtualmente imposible e incluso si lo fuera, la vida probablemente sea demasiado corta para poner un esfuerzo en ello. Cualquier respuesta que promueva los pasos para ocultar WP es solo una pérdida de tiempo y lo engañará pensando que está ocultando su WP (eso es absurdo).

1) El problema no es el wp-* urls obvio, el meta meta del generador, etc. Los problemas difíciles se relacionan con los patrones asociados con wordpress que un sistema local no se molestará en implementar como páginas de autor, año, mes, páginas del día, use p = nnn como un parámetro válido, forme comentarios con la clase de comentarios de wordpress, la estructura y los nombres de los enlaces, y luego está la autopromoción de los complementos de almacenamiento en caché y el SEO más reciente, y probablemente muchos otros complementos que vea solo cuando inspeccionas el propio HTML.

2) Hay otros métodos no contabilizados que muestran la existencia de WP (y no se puede superar eso):

  • Incluso el encabezado de respuesta php (como lo señala Dan Gayle debajo de mi respuesta) devuelve el encabezado WP específico.

  • Cualquiera puede consultar cualquiera de los diez archivos .php raíz: site.com/wp-cron.php o site.com/xmlrpc.php (o etc., que no puede ocultar) y la respuesta del encabezado será 200 en lugar de 404 not found .

  • cualquiera puede verificar si los puntos finales de json obtienen una respuesta específica de WP.

  • Dentro del HTML de la página, muchos de los archivos .css o .js tienen frases específicas que se refieren claramente a WP.

  • Dentro de la página HTML, es fácil encontrar las clases de elementos / css, como <div class="entry-content post-14"... o etc (que es una sugerencia directa de que la estructura utilizada es de WP)

  • Dentro de la página HTML, verás fácilmente la carpeta uploads , o incluso si cambias el nombre con hardcoding, la parte de la fecha como uploads/2018/05/image.jpg (o incluso image-315x225.jpg ) muestra la estructura típica de WP .

  • ya que muchos sitios ahora se crean utilizando MultiSite, usa, por ejemplo, /site/2 en los enlaces ...

  • haga ping a cualquier léame de plugins / temas (todos ellos contienen), como plugin-name/readme.txt , estado de retorno 200 .

  • y muchas, muchas, muchas otras cosas que usted (o incluso los profesionales) no podrán ocultar y simplemente perderán sus días.

conclusion

E incluso si pones el esfuerzo de limpiar todo lo que indica que se trata de una palabra, es posible que tengas que rehacer o al menos volver a verificar después de cada complemento o actualización del núcleo. La vida es demasiado corta para eso.

Puede confundir a algunos diletantes, pero no puede esconderse de un buen inspector. Si esto se hace como una medida de seguridad, entonces es la seguridad por oscuridad lo que siempre está mal, y si simplemente te da vergüenza usar Wordpress, déjame decirte algo: a nadie le importa, e incluso los muy pocos que lo hagan probablemente no lo harán. saber cómo resolverlo por sí mismos.

Lo único que debería preocuparte, es que proteges a WP tanto como puedas y monitoreas sus actualizaciones regulares.

    
respondido por el Mark Kaplun 12.08.2015 - 19:09
7

Puedes crear tu dirección personalizada para iniciar sesión en tu blog. Al no utilizar la ruta clásica "myblog.com/wp-admin" para llegar a su panel de control Esta página lo ayudará a crear inicios de sesión ocultos, esto también es bueno para las medidas de seguridad.

Por lo tanto, las personas que agregan wp-admin a tu blog no podrán adivinar :)

    
respondido por el mireille raad 08.09.2010 - 18:49
5

Además de lo anterior, debe bloquear el acceso a los diversos archivos y directorios wp* . Si alguien quisiera ver si estaba ejecutando WP, podrían adivinar si tenía wp-settings.php o si podían acceder a algún directorio. Devolver un 403 no es suficiente porque le dice al usuario que el recurso existe; simplemente no tienen acceso a él.

No soy un experto en apache, así que le pregunté a esto pregunta sobre en serverfault.

    
respondido por el Avery Chan 19.06.2011 - 07:41
3

No olvide que gran parte de la información del encabezado http que se envía junto con su solicitud puede identificar que su sitio se ejecuta en WordPress. Por ejemplo, si revisa los encabezados en los siguientes sitios, es obvio:

$ 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

Algunos de ellos están configurados por el servidor, otros están configurados por complementos, por lo que no hay una sola manera de decir cómo eliminar el 100% de ellos, pero si está usando PHP 5.3, puede usar

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

para eliminar un encabezado PHP conocido antes de que su contenido se elimine. No puedo decir con certeza dónde colocar esto (quizás alguien más pueda colaborar con esa información), pero probablemente sea seguro colocarlo en la parte superior de su index.php ANTES de cualquier contenido que se envíe al navegador.

    
respondido por el Dan Gayle 01.01.2014 - 02:40
3

Esto puede ser difícil de lograr si eres nuevo en php y mod_rewrite. Le sugiero que consulte la sección de mi respuesta. O inténtelo usted mismo, puede usar algo como esto para ocultar la estructura de ruta wp-content / plugins:

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

Esto cambiará la ruta a / modules. Use algo similar para otra estructura, es posible que necesite algunas reescrituras avanzadas, consulte enlace para obtener información adicional sobre mod_rewrite. .

Si prefieres algo fuera de la caja, hay algunos complementos agradables, algunos comerciales, también gratuitos en el repositorio de WordPress, sugiero probar WP Hide & Mejorador de seguridad . Esto incluye muchas cosas y ayuda a cambiar casi todo para hacer que su WordPress sea irreconocible. Aquí hay algunas características del código:

  • URL de administración personalizada
  • URL de administración personalizada
  • Bloquear la URL de administración predeterminada
  • Bloquee cualquier acceso directo a la carpeta para ocultar completamente la estructura
  • Nombre de archivo wp-login.php personalizado
  • Bloquear predeterminado wp-login.php
  • Bloquear predeterminado wp-signup.php
  • Bloquear API XML-RPC
  • Nueva ruta XML-RPC
  • url de tema ajustable
  • Nuevo url de tema infantil
  • Cambiar el nombre del archivo de estilo de tema
  • Custom wp-include
  • Bloquear las rutas wp-include predeterminadas
  • Bloquear la eliminación de contenido wp
  • urls de complementos personalizados
  • cambio de URL de plugin individual
  • Bloquear las rutas de los complementos por defecto
  • Nueva URL de subida
  • Bloquear las URL de carga predeterminadas
  • Eliminar la versión de wordpress
  • bloque del generador meta
  • Deshabilitar el emoji y el código javascript requerido
  • Eliminar etiqueta de pingback
  • Eliminar wlwmanifest Meta
  • Eliminar rsd_link Meta
  • Eliminar wpemoji

y muchos más ..

    
respondido por el WP-Silver 25.03.2016 - 12:53
2

No quiero repetir las opciones de codificación, ya que se han cubierto exhaustivamente, la otra opción que sé que funciona es usar un complemento que oculta wp. He utilizado este plugin antes de estándares satisfactorios. Se llama ocultar mi WordPress.

    
respondido por el NJENGAH 25.03.2015 - 10:54
2

La mayoría de las respuestas se concentran en ocultar WordPress en el código fuente de una página, pero incluso antes de eso, WP ya se entregó en el encabezado http de una instalación estándar. Simplemente intente su propio sitio en un sitio como web-sniffer (simule ser IE 6 y solicite un encabezado http 1.0) y lo hará Ver que entre las devoluciones se encuentra:

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

Este último es un enlace a la API de Wordpress.org . Está ahí desde que la API REST se incluyó en WP 4.4. Puede eliminarlo con esta línea justo al comienzo de su functions.php :

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

Muchos complementos, como Jetpack por sus enlaces cortos, también pueden insertar enlaces en el encabezado http. Pueden hacerlo, porque WP tiene una API HTTP , que le permite manipular los encabezados. Podría usar esta interfaz para eliminar todas las configuraciones de encabezado de los complementos si agrega su acción lo suficientemente tarde en el proceso.

Finalmente, puede usar .htaccess header interface para interceptar cualquier cosa que esté haciendo WP . Por ejemplo, puede evitar que se envíen encabezados de enlace incluyendo esta línea:

<IfModule mod_headers.c>
Header unset Link
</IfModule>
    
respondido por el cjbj 22.08.2016 - 15:55
0

Puede personalizar un tema para excluir toda la información de WordPress. También elimine el meta widget y cualquier widget que genere información sobre la plataforma.

Personalmente, prefiero mostrar mi gratitud al mostrar que estoy usando WordPress.

    
respondido por el James 08.09.2010 - 17:43
-1

Puede usar el complemento WPS Hide Login . Inicia sesión en tu wordpress usando wp-admin . Pero puede cambiar wp-admin a personalizado usando este complemento.

Ejemplo:

Antes: http://example.com/wp-admin
Después: http://example.com/custom-text-to-login

    
respondido por el user123002 10.07.2017 - 18:01

Lea otras preguntas en las etiquetas