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

8

Eu estava executando algum teste de segurança em meus aplicativos WordPress e notei que todos eles têm uma divulgação completa do caminho no seguinte URL. Tenho certeza de que isso foi respondido antes, mas não consigo encontrar nenhuma informação sobre isso.

enlace

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

Eu não tenho nada em meus temas para RSS.

Editar: Depois de mais pesquisas, este parece ser um problema comum na maioria dos sites WordPress. As soluções que encontrei online não corrigem o erro. Eles simplesmente dizem para esconder o relatório de erros no php.ini. Isso não resolve tudo e nem todo mundo tem acesso ao php.ini dependendo da situação de hospedagem.

    
por JediTricks007 19.09.2015 / 02:42

4 respostas

5

Os arquivos PHP no diretório wp-includes não devem ser acessíveis externamente, eles devem ser incluídos somente pelo código wordpress. Por isso, uma solução fácil para isso é usar regras de .htaccess para bloquear o acesso a arquivos * .php que estão sob o diretório wp-includes

    
por Mark Kaplun 29.05.2016 / 07:03
1

Essa é praticamente a única opção, para desativar o registro de erros / avisos do php. Existem 2 opções para fazer isso e outra que não é tão boa:

  • php.ini - na maior parte da hospedagem você pode alterar o php.ini (mesmo em hospedagem compartilhada) - .htaccess
  • diretamente em arquivos php (não recomendado)

enlace

    
por adiian 28.03.2016 / 16:19
0

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

O WP Scan acessa wp-includes/rss-functions.php diretamente, e este é o seu 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 é acessado diretamente, a função _deprecated_file() não existe, por isso gera um erro fatal.

A solução é desabilitar display_errors em um nível de servidor. Se o seu PHP rodar sob o mod_apache, você pode fazer isso adicionando esta linha ao seu arquivo principal .htaccess:

php_flag display_errors off

Se você usa o PHP-FPM, provavelmente terá que substituir o php.ini em sua pasta public_html local.

Além disso, o WordPress está ciente disso:

enlace

    
por Lucas Bustamante 28.07.2018 / 19:15
-1

Teoricamente, o que eu estou prestes a dizer é perigoso e provavelmente não deveria ser feito, se você está fazendo as coisas do jeito "Wordpress".

Praticamente , isso funciona para o nosso ambiente de produção.

O arquivo rss-functions.php está reprovado e redireciona para rss.php .

O arquivo rss.php foi preterido desde a v3.0.0 e comentários internos recomendam que você use o SimplePie.

Assim, o arquivo rss-functions.php pode ser excluído com segurança contanto que você não tenha uma instalação antiga e legada, e se você não tiver nenhum plug-in que dependa desse arquivo.

Como alternativa, comente a linha 8 desse arquivo.

Do ponto de vista de segurança, você deve definitivamente implementar a sugestão de @ MarkKaplun acima, já que este arquivo não deve ser acessado diretamente pelo navegador.

BTW, eu concordo com você que divulgar o caminho completo é um risco de segurança; mantemos o WEBROOT em um caminho personalizado por esse motivo.

    
por haz 03.01.2017 / 05:44

Tags