(Estou ciente de que a segurança via obscuridade não é recomendada).
Estou tentando esconder o fato de que estou usando o Wordpress. Esta postagem é útil, mas aborda apenas o conteúdo (mais ou menos). Estou interessado em que ocorra o seguinte:
O usuário tenta acessar qualquer URL
wp*
como uma substring pelo navegador.Resultado: redirecionado para a página 404.
User blog / administrador sabe, a fim de entrar eles devem ir para
http://example.com/blogin/
.Resultado: o apache os redireciona para
http://example.com/wp-admin/
.Se um usuário tentar acessar diretamente
wp-admin
do navegador, ele será enviado para o número 1.Resultado: redirecionado para a página 404.
Coisas que fiz até agora
Percebi em uma instalação padrão do WordPress que eu poderia acessar qualquer um dos
wp*
arquivos no diretório raiz (relativo) da instalação do WP. Especificamente,wp-settings.php
foi problemático porque deu informações sobre minha configuração. Se um usuário o acessasse, ele vomitaria alguns erros de PHP e revelaria parte da estrutura de diretórios. Eu editei meu arquivo php.ini paradisplay_errors
desligar. Agora, o acessohttp://example.com/wp-settngs.php
exibe uma página em branco.Isso por si só não é ideal, porque revela que
wp-settings.php
existe. De fato,wp*
é possível acessar todos os arquivos diferentes (com resultados diferentes). Em seguida, coloquei o seguinte no meu arquivo htaccess:RewriteEngine On RewriteBase / RewriteCond %{PATH_INFO} wp* [NC] RewriteRule .* - [F]
Isso funcionou muito bem! Qualquer coisa com a
wp*
foi roteada para minha página 404 personalizada. Mas agora não consigo acessar minha página de administrador.Tentei inserir esta linha no código acima:
RewriteRule ^blogin wp-admin [NC,R,L]
. Era para ser logo depois,RewriteBase
mas isso não funcionou.Eu tentei fazer um:
<Directory /home/example/wp*> Order Allow, Deny Allow from example.com Deny from all </Directory>
esperando que um referenciador do meu site (através da reescrita da regra) possa acessar o wp-admin, mas não alguém de fora. Isso também não funcionou. O apache reclamou que você não pode usar esta diretiva do htaccess.
Eu li a documentação do apache; Entendo os conceitos, teoricamente, mas preciso de ajuda prática.
EDIT: Estou procurando uma solução que use .htaccess em vez de httpd.conf, pois minha instalação específica torna o httpd.conf inconsistente.
fonte
Respostas:
TLDR; Não é possível ocultar o WordPress usando apenas diretivas no seu arquivo .htaccess.
Agora vem uma história de aflição e horror. Nosso amigo, fbh estava certo sobre a dificuldade de esconder o WordPress, não para covardes de barriga amarela. Arr! Aqui estão os detalhes desta (des) aventura. Sede avisados!
Motivação
Eu sou um daqueles caras que gosta de coisas perfeitas. Vou
gastartempo perdendo a engenharia de algo para ser o 'caminho certo'. Uma das coisas que eu não gostei na configuração padrão do WordPress foi que um usuário poderia digitar http://ex.com/wp-settings.php e todo esse jargão php seria espalhado por todo o lugar. Acabei conseguindo desativar os erros via PHP, mas isso levou a um desejo maior de ter apenas coisas que desde então eram recursos localizáveis do servidor ... e que todo o resto seria 404 / 3'ified para a nossa página de pesquisa personalizada. Depois disso, tive a ideia de que gostaria de ocultar completamente a estrutura subjacente (ou seja, WP) ... de qualquer forma ... se você quiser ocultar o WP, é possível. Mas é realmente difícil.Passos para sua desgraça
Modifique suas configurações de ini do PHP adequadamente. (ou seja, desative os erros de exibição) Você pode pensar que isso é desnecessário porque, se estivermos usando o .htaccess para redirecionar as coisas, as pessoas não verão erros porque não podem acessar o erro que está causando os recursos (estou olhando para você
wp-settings.php
). Mas podem ocorrer erros nas páginas exibidas, então você definitivamente os deseja. Só porque asWP_*
diretivas são definidas não significa necessariamente que as coisas vão funcionar da maneira que você pensa que elas irão. Eu descobri que no meu servidor eu precisava definir os display_errors como false PRIMEIRO, porque WP_DISPLAY_ERRORS supunha que a configuração padrão era falsa.Controlar as configurações de ini do PHP pode ser algo tão simples quanto colocar uma diretiva no seu arquivo .htaccess. Ou, no meu caso, tão complicado quanto criar um manipulador CGI e colocar um arquivo php.ini lá. YMMV, dependendo da sua configuração.
Remova todo o acesso aos arquivos / diretórios com
wp-
prefixo. A idéia é que sua implantação do WP seja sobre o seu conteúdo, não sobre o WP (a menos que seja especificamente focado no WP). Não faz sentido para as pessoas quererem ver o que http; // ex.com/wp-cron.php tem ... a menos que não sejam boas. Eu consegui isso através deste:Aprenda a passar pelo mordor Ao remover todo o acesso,
wp-*
você não poderá mais obter acesso à parte administrativa do WP. Isso é realmente péssimo. Além desse infortúnio, você acabou de perceber que não sabe o queRewriteCond %{ENV:REDIRECT_STATUS} ^$
realmente faz. Bem, o que eu tentei fazer é me dar um backdoor 'secreto' para a página de administração do WP. Eu usei este código:Portanto, o URL: http://ex.com/mordor deve nos levar à página de login. O motivo pelo qual tínhamos a
REDIRECT
linha na etapa acima é que, como esse URL é reescrito em umwp-*
URL, não queremos a primeira regra de reescrita para obtê-lo. Como está sendo redirecionado internamente,REDIRECT_STATUS
será definido corretamente e não nos levará a 403/4 do terreno.Remover wp-content O Wordpress.stackexchange tem um ótimo artigo sobre como remover wp-content. Você precisa redefinir algumas constantes do WP e isso praticamente funciona. Você também precisa redirecionar todos os acessos de
wp-content
para 'qualquer conteúdo'. Provavelmente, isso não será um problema se for uma implantação limpa. Se você estiver modificando uma implantação pré-existente, precisará fazer algumas coisas extras.Reescreva os URLs para o conteúdo wp opcional
RewriteRule (.*)(wp-content)(.*) $1whatever-content$3 [NC,R,L]
. Isso vai no seu arquivo .htaccess. Se o usuário tentar acessar algum conteúdo antigo por meio de umwp-content
URL, ele será redirecionado aqui.Grep e substitua todas as referências ao conteúdo wp no seu banco de dados opcional . Você ainda tem
wp-content
em seu banco de dados. Se você deseja liberar o WP, precisa se livrar dessas coisas. Eu exportei / mysql despejei meu banco de dados, fiz uma pesquisa e substitui awp-content
string pela nova string. Você pode dizer ... por que tenho que fazer isso se o apache reescrever meus URLs? O problema é que o código fonte conterá essas referências; portanto, se você estiver realmente interessado em obscurecer o WordPress, precisará fazer isso. Nota: Neste ponto, eu deveria ter parado e aceito a realidade de que isso não iria funcionar. Mas eu queria que o Sr. T tivesse pena de mim.Substitua todas as referências para
wp-includes
ewp-admin
na fonte. Muitas das funcionalidades do WordPress dependem desses dois diretórios:wp-includes
ewp-admin
. Isso significa que esses nomes de diretório são codificados no código fonte. Isso significa que você precisaria criar novos diretórios (já que o PHP usa o sistema de arquivos do SO subjacente, não o apache) para acessá-los e, em seguida, ESCREVA-OS no html emitido. Isso é demais. Eu rapidamente desisti e fui ao banheiro para fazer cocô.Lição
Claro, eu poderia ter lido http://codex.wordpress.org/Hardening_WordPress e seguido essas etapas. Mas eu queria o site perfeito. Agora eu só quero todas aquelas horas de volta. A maior coisa que me impediu de parar foi que eu não li em nenhum lugar na internet que isso era muito trabalho e quase impossível de fazer. Em vez disso, li sobre pessoas tentando fazê-lo sem ter noção de se foram bem-sucedidas ou não. Então, para o meu passado, a quem enviarei isso através do Time Machine da Apple, por favor, não tente ocultar o WordPress. Não vale a pena.
fonte
wp-includes
ewp-admin
texto manualmente. Tenho certeza de que você navegou em cada arquivo e foi substituído manualmente. Isso porque você perdeu alguns softwares úteis úteis. Por exemplo, você poderia ter tentado grepWin que torna esse trabalho mais fácilSe você está tentando esconder que está usando o wordpress por causa de crackers, então realmente tem trabalho a fazer. Se você fizer o truque wp *, o que dizer de wp-content e wp-includes? Sem conseguir alcançá-los, você quebrará a página e ela ficará horrível.
Além disso, existem tantas coisas no Wordpress que isso realmente exige algum trabalho - e você provavelmente precisará fazer muito disso novamente quando uma atualização estiver instalada. (Como alguns redirecionamentos no Apache não funcionam)
Se você está apenas tentando esconder do Sr. e da Sra. Todo mundo, é claro que deve conseguir fazer isso de alguma maneira com obscuridade.
Você leu o guia "endurecer Wordpress"? Caso contrário, você deve conferir: http://codex.wordpress.org/Hardening_WordPress Ele fornece uma ótima introdução a muitas coisas que você pode fazer.
Além disso, se você está tão ansioso para esconder o fato de usar o Wordpress, por que usá-lo?
fonte
Tente fazer sua configuração na configuração do apache. Isso pode ser uma inclusão de arquivo como
/etc/wordpress/htaccess
. Isso permitirá que você use aDirectory
diretiva de configuração. No entanto, você precisará reiniciar o apache para carregar as alterações. Use a reinicialização normal se não desejar interrupções no serviço.Para restringir o acesso a diretórios com
.htaccess
arquivos, eles precisam estar nos diretórios apropriados. Eles funcionam como o conteúdo de umaDirectory
diretiva de configuração. Pode ser necessário ativar as.htaccess
opções necessárias na sua configuração do apache. Esse método não é tão eficiente quanto usar o comando na configuração do apache, pois precisa ser reparado com freqüência.fonte
.htaccess
arquivo no diretório correspondente. Nota: O Apache recomenda que você use a configuração, se possível. Use o controle de versão para se proteger contra substituições.