Eu estava executando algum teste de segurança em meus aplicativos WordPress e percebi que todos eles têm uma divulgação completa do caminho no URL a seguir. Estou certo de que isso já foi respondido antes, mas não consigo encontrar nenhuma informação sobre isso.
https://mydomains.com/wp-includes/rss-functions.php
A mensagem de erro ao acessar o link é Chamar para a função indefinida _deprecated_file () em /home/mydomain/public_html/wp-includes/rss-functions.php na linha 8
Não tenho nada nos meus temas para RSS.
Edit: Após mais pesquisas, este parece ser um problema comum na maioria dos sites WordPress. As soluções que encontrei on-line não corrigem o erro. Eles simplesmente dizem para ocultar o relatório de erros no php.ini. Isso não o corrige e nem todos têm acesso ao php.ini, dependendo da situação de hospedagem.
Respostas:
Os arquivos PHP no diretório wp-includes não devem ser acessíveis de fora, devem ser incluídos apenas pelo código wordpress. Portanto, uma solução fácil é usar regras .htaccess para bloquear o acesso a arquivos * .php que estão no diretório wp-includes
fonte
Essa é praticamente a única opção, para desativar o registro de erro / aviso de php. Existem 2 opções para fazê-lo e outra que não é tão boa:
http://phphtml.info/how-to-fix-wordpress-internal-pathfull-path-disclosurefpd-issue/
fonte
Display_errors deve ser desativado em um site de produção.
O WP Scan acessa
wp-includes/rss-functions.php
diretamente, e este é o código fonte, a partir do WordPress 4.9.7:Quando é acessada diretamente, a
_deprecated_file()
função não existe, então gera um erro fatal.A solução é desativar
display_errors
no nível do servidor. Se o seu PHP rodar em mod_apache, você poderá fazê-lo adicionando esta linha ao seu arquivo .htaccess principal:Se você usa PHP-FPM, provavelmente substituirá o php.ini na pasta public_html local.
Além disso, o WordPress está ciente disso:
https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-fficient-files
fonte
Teoricamente, o que estou prestes a lhe dizer é perigoso e provavelmente não deve ser feito, se você estiver fazendo as coisas da "maneira adequada para Wordpress".
Na prática , isso funciona para o nosso ambiente de produção.
O arquivo
rss-functions.php
está obsoleto e redireciona pararss.php
.O arquivo
rss.php
está obsoleto desde a v3.0.0 e os comentários internos recomendam que você use o SimplePie.Portanto, o arquivo
rss-functions.php
pode ser excluído com segurança , desde que você não tenha uma instalação antiga e legada e se você não tiver plugins que dependam desse arquivo.Como alternativa, comente a linha 8 desse arquivo.
Do ponto de vista de segurança, você também deve implementar definitivamente a sugestão de @ MarkKaplun acima, pois esse arquivo não deve ser atingido diretamente pelo navegador.
BTW, eu concordo com você que divulgar o caminho completo é um risco à segurança; mantemos o WEBROOT em um caminho personalizado por esse motivo.
fonte