Estaba ejecutando algunas pruebas de seguridad en mis aplicaciones de WordPress y noté que todas ellas tienen una divulgación de ruta completa en la siguiente URL. Estoy seguro de que esto ha sido respondido antes, pero no puedo encontrar ninguna información al respecto.
https://mydomains.com/wp-includes/rss-functions.php
El mensaje de error al ir al enlace es Llamada a la función indefinida _deprecated_file () en /home/mydomain/public_html/wp-includes/rss-functions.php en la línea 8
No tengo nada en mis temas para RSS.
Editar: después de una mayor investigación, este parece ser un problema común en la mayoría de los sitios de WordPress. Las soluciones que encontré en línea en realidad no corrigen el error. Simplemente dicen que oculte el informe de errores en php.ini. Sin embargo, eso no lo soluciona y no todos tienen acceso a php.ini dependiendo de su situación de alojamiento.
Respuestas:
Los archivos PHP en el directorio wp-includes no deberían ser accesibles desde el exterior, solo deberían incluirse mediante el código de WordPress. Por lo tanto, una solución fácil para esto es usar reglas .htaccess para bloquear el acceso a los archivos * .php que se encuentran en el directorio wp-includes
fuente
Esa es prácticamente la única opción, deshabilitar el registro de error / advertencia de php. Hay 2 opciones para hacerlo y otra que no es tan buena:
http://phphtml.info/how-to-fix-wordpress-internal-pathfull-path-disclosurefpd-issue/
fuente
Display_errors debe deshabilitarse en un sitio web de producción.
WP Scan accede
wp-includes/rss-functions.php
directamente, y este es su código fuente, a partir de WordPress 4.9.7:Cuando se accede directamente, la
_deprecated_file()
función no existe, por lo que arroja un error fatal.La solución es deshabilitar
display_errors
a nivel de servidor. Si su PHP se ejecuta bajo mod_apache, puede hacerlo agregando esta línea a su archivo .htaccess principal:Si usa PHP-FPM, probablemente tendrá que reemplazar php.ini en su carpeta local public_html.
Además, WordPress es consciente de eso:
https://make.wordpress.org/core/handbook/testing/reporting-security-vulnerabilities/#why-are-there-path-disclosures-when-directly-loading-certain-files
fuente
Teóricamente, lo que voy a decirte es peligroso y probablemente no debería hacerse, si estás haciendo las cosas de la "forma correcta de Wordpress".
Prácticamente , esto funciona para nuestro entorno de producción.
El archivo
rss-functions.php
está en desuso y se redirige arss.php
.El archivo
rss.php
ha quedado en desuso desde v3.0.0, y los comentarios internos recomiendan que use SimplePie en su lugar.Por lo tanto, el archivo
rss-functions.php
se puede eliminar de forma segura siempre que no tenga una instalación antigua heredada y si no tiene complementos que dependan de este archivo.Alternativamente, comente la línea 8 en ese archivo.
Desde el punto de vista de la seguridad, también debe implementar definitivamente la sugerencia de @ MarkKaplun anterior, ya que este archivo no debe ser golpeado directamente por el navegador.
Por cierto, estoy de acuerdo con usted en que divulgar la ruta completa es un riesgo de seguridad; Mantenemos WEBROOT en una ruta personalizada por ese motivo.
fuente