it-swarm-pt.tech

Passos para tomar para esconder o fato de um site está usando o WordPress?

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 Mark answer , então não confie nisso como uma medida de segurança.

141
Casebash

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

Exemplo WordPress head conteúdo produzido 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 quaisquer plugins não usarem o método apropriado para chamar arquivos.

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

Configure WP_CONTENT_URL para o URI completo deste diretório (sem barra final), 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

Esteja ciente 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 plugins.

126
Chris_O

Um bit que muitas vezes é perdido - delete 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 relacionada: Evitar o acesso ou excluir automaticamente o readme.html, license.txt, wp-config-sample.php

45
Rarst

Eu sempre usei o método Roots Theme .
Mas aplicá-lo àqueles ThemeJungleestá lá fora, geralmente, 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 eu tenho trabalhado agora:

safari activity window
/m é a pasta uploads, /t é a pasta themes e /t/t é a pasta do tema ativo. O site não é complexo, portanto poucos recursos são carregados ...


WP_CONTENTLESS

wp-config.php

Configurando wp-content para a raiz (/public_html/) do site.

/** 
 Inside WP_CONTENT, the following folders should exist: 
 /languages , /mu-plugins , /plugins , /themes , /upgrade , /uploads  

 The WP_CONTENT_* definitions bellow REMOVE the existence of the /wp-content folder 
 and makes its contents reside in the ROOT of your site

 UTTERMOST attention is necessary when doing file maintenance activities in the server (i.e.: WP upgrades, new Webmaster...), 
 as the Themes and Plugins folders are meant to be renamed to /t and /p (serious candidates for unthoughful removal)

 PLEASE note:
 - we change the Plugins folder in WP_PLUGIN_* definitions
 - the Themes folder is changed by a MustUse Plugin 
   (/mu-plugins/set-extra-themes-folder.php)
 - the Uploads folder is changed in WordPress settings page 
   (http://example.com/wp-admin/options-media.php)
 - the hardcode path to be used in WP_CONTENT_DIR and WP_PLUGIN_DIR can be checked using an action inside the set-extra-themes-folder Plugin (check the comments in this file)
*/
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' );

Eu perguntei sobre isso em [wp-hackers] - Quaisquer inconvenientes na configuração de WP_CONTENT_DIR (e URL) para DOCUMENT_ROOT? , onde John Blackbourn1Mike pequeno2 e Otto3 foram gentilmente suficiente para aconselhar:

1
Eu tenho essa estrutura ativa em um site nos últimos 18 meses e não vi nenhum problema. Como acontece com qualquer alteração no local do diretório de conteúdo, você precisará verificar novamente se algum plug-in adicionado ao site não pressupõe que o diretório de conteúdo esteja em wp-content.

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

3
Há casos em que o conteúdo em $_SERVER pode ser perfeitamente seguro, mas, por motivos 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á constantes WP_THEMES_*, precisamos da função register_theme_directory () to "Registre um diretório que contenha temas."
Tentei definir o diretório extra para a raiz, mas os resultados são engraçado (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 Folder

/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 de 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.
uploads folder settings


Plugins e Conteúdo Principal

Consulte Cris_O Responda nesta sessão de perguntas e respostas.


Readme.html

Consulte Rarst Responde neste Q & A


Outras Etapas

Como de costume, temas ThemeJungle podem solicitar hacks específicos no tema.
Como ... TimThumb não está funcionando (!!! lol !!!).

21
brasofilo

A única resposta válida: IMPOSSÍVEL

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 irá enganá-lo achando que você está escondendo seu WP (isso é um absurdo).

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

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

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

  • Qualquer um pode simplesmente consultar qualquer um dos arquivos .php de raiz de dezenas: site.com/wp-cron.php ou site.com/xmlrpc.php (ou etc, que você não pode esconder) 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 ao 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, então a parte da data como uploads/2018/05/image.jpg (ou mesmo image-315x225.jpg) mostra a típica estrutura WP.

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

  • ping para qualquer readme de plugins/themes (todos eles contém), como plugin-name/readme.txt, retornando status 200.

  • e muitas, muitas, muitas outras coisas que você (ou mesmo 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, então 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 importar é que você proteja WP tanto quanto você puder e monitore suas atualizações regulares.

12
Mark Kaplun

Você pode ter o WordPress em um servidor e raspar o 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 servir. Você poderia então apenas usar um sistema de comentário baseado em javascript, como o Disqus.

Realmente baixo uso de recursos, porque aqui não há bancos de dados no servidor que serve o conteúdo.

10
AndyBeard

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

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

7
mireille raad

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 rodando 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.

Eu não sou um especialista em Apache, então eu perguntei esta questão sobre no serverfault.

5
Avery Chan

Isso 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 http://httpd.Apache.org/docs/current/mod/mod_rewrite.html para informações adicionais do 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 Hide & 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 administração personalizada
  • URL de administração personalizada
  • Bloquear URL de administrador padrão
  • Bloquear qualquer acesso de pasta direta para ocultar completamente a estrutura
  • Nome de arquivo wp-login.php customizado
  • Bloquear 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
  • URL do tema para nova criança
  • Alterar o nome do arquivo de estilo do tema
  • Custom wp-include
  • Bloquear caminhos wp-include padrão
  • Bloquear defaltar conteúdo wp
  • URLs de plug-ins personalizados
  • Mudança de URL de plug-in individual
  • Bloquear caminhos de plug-ins padrão
  • Novo URL de upload
  • Bloquear URLs de upload padrão
  • Remova a 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 Meta rsd_link
  • Remover wpemoji

e muitos mais..

3
WP-Silver

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 deles 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"); ( http://www.php.net/manual/en/function.header-remove.php )

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

3
Dan Gayle

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

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

Este último é um link para o Wordpress.org API . Está lá desde que a REST API foi incluída em 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 WP tem uma HTTP API , 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.

Finalmente, você pode usar a interface de cabeçalho .htaccess para interceptar qualquer coisa que 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>
2
cjbj

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 wp. Eu usei este plugin antes de padrões satisfatórios. Seu chamado esconde meu WordPress.

2
NJENGAH

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, eu prefiro mostrar minha gratidão mostrando que estou usando o WordPress.

0
James