Passos para descartar o fato de um site estar usando o WordPress?

135

Eu tenho um site para o qual estamos tentando ser discretos sobre o fato de que estamos usando o WordPress. Que passos podemos dar para torná-lo menos óbvio?

EDIT- Nota de segurança importante:

Por favor, entenda que fazer isso perfeitamente é impossível, de acordo com a resposta de Mark, por isso não confie nisto uma medida de segurança.

    
por Casebash 08.09.2010 / 08:42
fonte

13 respostas

123

Os maiores brindes do WordPress estão entre as tags <head> </head> .

Exemplo de saída de conteúdo principal do WordPress pelo The Twentyten Theme e como remover:

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

Remover diretamente do header.php

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

Esconda o WordPress chamando sua folha de estilo de outro local e altere o diretório wp-content. O WordPress requer que seu tema inclua algumas informações básicas na parte superior de style.css (style.css deve estar no diretório-raiz de temas). Você precisará criar um CSS alternativo e chamá-lo de sua cabeça. O WordPress não requer que você use os temas style.css, ele apenas requer que ele esteja no diretório de temas.

Remover diretamente do 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 remover esses links extras, você pode adicionar um 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);

Você pode mudar seu diretório de plugins e seu diretório wp-content em seu arquivo wp-config.php, mas você pode ter alguns problemas se o seu tema ou qualquer plug-in não usar o método apropriado para chamar arquivos.

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

Defina WP_CONTENT_URL como o URI completo desse diretório (sem barra), por exemplo

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

Opcional Defina WP_PLUGIN_DIR como o caminho local completo desse diretório (sem barra), por exemplo,

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

Defina WP_PLUGIN_URL como o URI completo desse diretório (sem barra), por exemplo,

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

PLUGINS

Lembre-se de que alguns plug-ins como o Akismat, o All in One SEO, o W3-Total-Cache, o Super Cache e muitos outros adicionam comentários à saída HTML. A maioria é fácil de modificar para remover os comentários, mas suas alterações serão sobregravadas sempre que os plugins forem atualizados.

wp-includes

O diretório wp-includes contém jquery e vários outros arquivos js que os temas ou plugins chamam usando wp_enqueue_script (). Para mudar isso, você precisará cancelar o registro dos scripts padrão do WordPress e registrar o novo local. Adicione 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');

Isso precisará ser feito com cada script usado pelo seu tema ou plug-ins.

    
por Chris_O 08.09.2010 / 09:50
fonte
45

Um bit que muitas vezes é perdido - exclua readme.html na raiz do WordPress. Não só identifica a instalação como WP, mas também tem uma versão precisa. E não se esqueça de repetir as atualizações.

Pergunta: Impeça o acesso ou exclua automaticamente readme.html, license.txt, wp-config-sample.php

    
por Rarst 13.09.2010 / 08:25
fonte
21

Sempre usei o método Roots Theme .
Mas aplicá-lo a esses ThemeJungle geralmente tem uma grande dor de cabeça.

Então, comecei a brincar com as constantes WP_CONTENT_* . O que eu acredito ser um método muito menos propenso a erros e é isso que tenho trabalhado agora:


/méapastauploads,/téa%Apastathemese/t/tsãoapastadotemaativo.Ositenãoécomplexo,entãopoucosrecursosforamcarregados...

WP_CONTENTLESS

wp-config.php

Definindowp-contentparaaraiz(/public_html/)dosite.

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

Eupergunteisobreissoem [wp-hackers] - Quaisquer inconvenientes na configuração WP_CONTENT_DIR (e URL) para DOCUMENT_ROOT? , onde John Blackbourn 1 , Mike Little 2 e Otto 3 foram gentis o suficiente para aconselhar:

  

1
  Eu tive essa estrutura ativa em um site para os últimos 18   meses e não vi nenhum problema. Como com qualquer mudança na   localização do diretório de conteúdo, você precisará verificar novamente   plugins que você adiciona ao site não assume que o diretório de conteúdo é   em wp-content .

     

2
  Existem discussões em torno da rede que o $_SERVER['DOCUMENT_ROOT'] pode ser   suscetível a pirataria. Nesse caso, isso é extremamente perigoso porque   Há muitos lugares que require() ou include() WP_CONTENT_DIR .   'alguma coisa';

     

3
  Há casos em que o conteúdo em $_SERVER pode ser perfeitamente seguro,   mas para fins de segurança, é melhor sempre tratá-lo como   dados não confiáveis. Para este caso específico, codifique o diretório.

Uma nova pasta de temas

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

Como não há WP_THEMES_* constantes, precisamos da função register_theme_directory () para " Registrar um diretório que contém temas. "
Tentei definir o diretório extra para a raiz, mas os resultados são engraçados (por exemplo, não 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' );
    }
}

Uploads de pasta

/wp-admin/options-media.php

Em vez de http://example.com/uploads , será http://example.com/m .
Desmarcar Organize my uploads into... dará uma aparência WPless aos URLs dos ativos.
Se o site estiver ativo, uma pesquisa / substituição deve ser feita no banco de dados e os arquivos devem ser movidos.

Plugins e conteúdo principal

Consulte Cris_O Responder neste Q & A.

Readme.html

Consulte Rarst Responder neste Q & A.

Outras etapas

Como de costume, os temas do ThemeJungle podem sugerir hacks específicos no tema.
Tipo ... TimThumb não funciona (!!! rsrs !!!).

    
por brasofilo 15.07.2012 / 20:40
fonte
10

Você pode ter o WordPress em um servidor e raspar seu conteúdo de outro, incluindo apenas o conteúdo que você precisa.

Se você precisa de RSS, você terá que fazer o mesmo com isso.

Efetivamente, seria como servir páginas estáticas de um proxy ou CDN, mas apenas os bits que você deseja veicular. Você poderia então apenas usar um sistema de comentário baseado em javascript, como o Disqus.

Uso de recursos muito baixo, porque aqui não há bancos de dados no servidor que atende ao conteúdo.

    
por AndyBeard 13.09.2010 / 00:58
fonte
9

A única resposta válida: IMPOSSIBLE

Tantas respostas votadas ... tempo para esclarecer as coisas. Bem, a verdade é que é praticamente impossível e, mesmo que seja, a vida é provavelmente curta demais para se dedicar a ela. Qualquer resposta, que promova passos para esconder WP é apenas um desperdício de tempo e vai enganar você pensando que você está escondendo o seu WP (que é um absurdo).

1) O problema não é o óbvio wp-* urls, a meta do gerador, etc. Os problemas difíceis são com padrões associados ao wordpress que um sistema caseiro não se importará em implementar como páginas do autor, ano, mês, dia, use p = nnn como um parâmetro válido, tenha formulário de comentário com a classe de comentário wordpress, estrutura e nomes de link, e então há a auto-promoção dos plugins de cache e yoast SEO e provavelmente muitos outros plugins que você vê somente quando você inspeciona o próprio HTML.

2) Existem outros métodos não contados que mostram a existência do WP (e você não pode superar isso):

  • Até mesmo o cabeçalho de resposta do php (como anotado por Dan Gayle abaixo da minha resposta) retorna o cabeçalho específico do WP.

  • Qualquer um pode consultar qualquer um dos arquivos .php de raiz: site.com/wp-cron.php ou site.com/xmlrpc.php (ou etc, que você não pode ocultar) e a resposta do cabeçalho será 200 em vez de 404 not found .

  • qualquer um pode verificar se tem endpoints do json para obter uma resposta específica do WP.

  • Dentro da página HTML, muitos dos arquivos .css ou .js têm frases específicas, que se referem claramente a WP.

  • Dentro da página HTML, é fácil encontrar as classes elements / css, como <div class="entry-content post-14"... ou etc (que é uma dica direta de que a estrutura usada é de WP)

  • Dentro da página HTML, você verá facilmente a pasta uploads , ou mesmo se você renomeá-la com hardcoding, a parte da data como uploads/2018/05/image.jpg (ou mesmo image-315x225.jpg ) mostrará a estrutura típica do WP .

  • como muitos sites agora são criados usando o MultiSite, ele usa, por exemplo, /site/2 em links ...

  • ping para qualquer plug-in / temas readme (todos eles contêm), como plugin-name/readme.txt , status de retorno 200 .

  • e muitas, muitas, muitas outras coisas que você (ou até profissionais) não conseguirão esconder e apenas desperdiçarão seus dias!

conclusão

E mesmo que você se esforce para limpar tudo, indicando que se trata de um wordpress, talvez seja necessário refazer ou pelo menos verificar novamente após cada atualização de plug-in ou núcleo. A vida é muito curta para isso.

Você pode enganar alguns diletantes, mas não pode se esconder de um bom inspetor. Se isso é feito como uma medida de segurança, então é a segurança pela obscuridade que está sempre errada, e se você está apenas com vergonha de usar o wordpress, deixe-me dizer uma coisa - ninguém se importa, e mesmo os poucos que provavelmente não o farão sabe como descobrir por si mesmo.

A única coisa que você deve se preocupar é proteger o WP o máximo que puder e monitorar suas atualizações regulares.

    
por Mark Kaplun 12.08.2015 / 19:09
fonte
7

Você pode criar seu endereço personalizado para fazer login no seu blog. Por não usar o caminho clássico "myblog.com/wp-admin" para chegar ao seu painel Esta página irá ajudá-lo com a criação de logins stealth, o que também é bom para medidas de segurança.

Assim, as pessoas que adicionam o wp-admin ao seu blog não poderão adivinhar:)

    
por mireille raad 08.09.2010 / 18:49
fonte
5

Além do acima, você precisa bloquear o acesso aos vários arquivos e diretórios wp* . Se alguém quisesse ver se você estava executando o WP, eles poderiam adivinhar se você tinha wp-settings.php ou se eles poderiam acessar algum diretório. Retornar um 403 não é suficiente porque informa ao usuário que o recurso existe; eles simplesmente não têm acesso a ele.

Não sou especialista em apache, por isso pedi a pergunta no serverfault.

    
por Avery Chan 19.06.2011 / 07:41
fonte
3

Não se esqueça de que muitas das informações de cabeçalho HTTP enviadas junto com sua solicitação podem identificar seu site como sendo executado no WordPress. Por exemplo, se você verificar os cabeçalhos nos seguintes sites, é óbvio:

$ 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

Alguns desses são configurados pelo servidor, alguns são configurados por plugins, então não há uma maneira de eu dizer como remover 100% deles, mas se você estiver usando PHP 5.3 você pode usar

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

para remover um cabeçalho de PHP conhecido antes que seu conteúdo seja removido. Eu não posso dizer com certeza onde colocar isso (talvez alguém possa contribuir com essa informação), mas é provavelmente seguro colocá-lo no topo do seu index.php ANTES de qualquer conteúdo enviado para o navegador.

    
por Dan Gayle 01.01.2014 / 02:40
fonte
3

Isto pode ser difícil de conseguir se você é novo em php e mod_rewrite. Eu sugiro que você verifique com a seção da minha resposta. Ou tente você mesmo, você pode usar algo assim para esconder a estrutura do caminho wp-content / plugins:

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

Isso mudará o caminho para / modules. Use algo similar para outra estrutura, você pode precisar de algumas reescritas avançadas, veja enlace para informações adicionais sobre mod_rewrite .

Se preferir algo fora da caixa, existem alguns plugins legais, alguns comerciais, também gratuitos no repositório do WordPress, eu sugiro tentar WP Ocultar & Security Enhancer . Isso inclui muitas coisas e ajuda a mudar praticamente tudo para tornar seu WordPress irreconhecível. Aqui estão algumas características do código:

  • URL de administrador personalizado
  • URL de administrador personalizado
  • Bloquear URL de administrador padrão
  • Bloqueia qualquer acesso de pasta direta para ocultar completamente a estrutura
  • Custom wp-login.php filename
  • Bloqueie o padrão wp-login.php
  • Bloquear o padrão wp-signup.php
  • Bloquear API XML-RPC
  • Novo caminho XML-RPC
  • URL do tema ajustável
  • Novo url de tema filho
  • Alterar o nome do arquivo de estilo do tema
  • Personalizar wp-include
  • Bloquear caminhos wp-include padrão
  • Bloqueie o deft do wp-content
  • URLs de plug-ins personalizados
  • Mudança de URL do plug-in individual
  • Bloquear caminhos de plug-in padrão
  • Novo URL de upload
  • Bloquear URLs de upload padrão
  • Remover versão do wordpress
  • Bloco Meta Generator
  • Desabilite o emoji e solicite o código javascript
  • Remover tag de pingback
  • Remover o Meta wlwmanifest
  • Remover o rsd_link Meta
  • Remover o wpemoji

e muito mais ..

    
por WP-Silver 25.03.2016 / 12:53
fonte
2

Eu não quero repetir as opções de codificação, uma vez que elas foram exaustivamente cobertas, a outra opção que eu sei que funciona é usando um plugin que esconde o wp. Eu usei este plugin antes de padrões satisfatórios. Seu chamado esconde meu WordPress.

    
por NJENGAH 25.03.2015 / 10:54
fonte
2

A maioria das respostas se concentra em obscurecer o WordPress no código-fonte de uma página, mas mesmo antes disso o WP já se deu no cabeçalho http de uma instalação padrão. Apenas tente o seu próprio site em um site como web-sniffer (finja ser o IE 6 e peça um cabeçalho http 1.0) e você veja que entre os retornos está:

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

O último é um link para a API do Wordpress.org . Está lá desde que a API REST foi incluída no WP 4.4. Você pode removê-lo com esta linha logo no início de seu functions.php :

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

Muitos plugins, como o Jetpack para seus atalhos, também podem inserir links no cabeçalho http. Eles podem fazer isso, porque o WP tem uma API HTTP , que permite manipular cabeçalhos. Você poderia usar essa interface para remover todas as configurações de cabeçalho por plugins se você adicionar sua ação tarde o suficiente no processo.

Por fim, você pode usar interface de cabeçalho de acesso para interceptar qualquer coisa que o WP esteja fazendo . Por exemplo, você pode impedir que qualquer cabeçalho de link seja enviado, incluindo esta linha:

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

Você pode personalizar um tema para excluir todas as informações do WordPress. Além disso, remova o meta widget e qualquer widget que possa gerar informações sobre a plataforma.

Pessoalmente, prefiro mostrar minha gratidão mostrando que estou usando o WordPress.

    
por James 08.09.2010 / 17:43
fonte
-1

Você pode usar o plugin WPS Hide Login .
Você faz o login no seu wordpress usando wp-admin . Mas você pode alterar wp-admin para personalizado usando este plug-in.

Exemplo:

Antes: http://example.com/wp-admin
Depois: http://example.com/custom-text-to-login

    
por user123002 10.07.2017 / 18:01
fonte