Divulgação do caminho completo em rss-functions.php


8

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.


Este não é um problema de segurança.
fuxia

4
Eu discordo de você. O caminho completo é uma informação muito valiosa para os invasores.
JediTricks007

Apenas verifique se as permissões do arquivo estão configuradas corretamente e se essas informações são inúteis para qualquer pessoa sem essas permissões. Se o seu site estiver vulnerável, expondo o caminho local, você terá problemas muito mais importantes.
fuxia

2
Minhas permissões de arquivo estão definidas corretamente. Não quero que isso mostre e acho que é uma preocupação válida. Eu acho que se eu puder impedir uma maneira fácil de encontrar o caminho completo do meu site, isso é positivo. Segundo o Owasp, alguns ataques exigem que o invasor conheça o caminho completo que deseja visualizar. Portanto, não mostrar essas informações ao invasor é importante.
JediTricks007

Respostas:


5

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


1
Você pode dar um exemplo desse .htaccess?
Lucas Bustamante


0

Display_errors deve ser desativado em um site de produção.

O WP Scan acessa wp-includes/rss-functions.phpdiretamente, e este é o código fonte, a partir do WordPress 4.9.7:

<?php
/**
 * Deprecated. Use rss.php instead.
 *
 * @package WordPress
 */
_deprecated_file( basename(__FILE__), '2.1.0', WPINC . '/rss.php' );
require_once( ABSPATH . WPINC . '/rss.php' );

Quando é acessada diretamente, a _deprecated_file()função não existe, então gera um erro fatal.

A solução é desativar display_errorsno nível do servidor. Se o seu PHP rodar em mod_apache, você poderá fazê-lo adicionando esta linha ao seu arquivo .htaccess principal:

php_flag display_errors off

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


-1

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.phpestá obsoleto e redireciona para rss.php.

O arquivo rss.phpestá obsoleto desde a v3.0.0 e os comentários internos recomendam que você use o SimplePie.

Portanto, o arquivo rss-functions.phppode 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.


2
para melhor e pior, excluir ou alterar arquivos principais nunca é uma solução.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.