Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

Cómo deshabilitar la ejecución de PHP en ciertos directorios de WordPress

Detectar un archivo PHP desconocido en tu carpeta de subidas de WordPress es un momento aterrador. Hemos ayudado a miles de usuarios en pánico a asegurar sus sitios después de descubrir esta vulnerabilidad exacta.

Este problema expone una brecha de seguridad oculta que deja tu sitio web expuesto a los atacantes. Los hackers utilizan estos directorios desprotegidos para subir scripts maliciosos y crear puertas traseras ocultas.

Afortunadamente, puedes bloquear este método de ataque común con algunos ajustes rápidos. Deshabilitar la ejecución de PHP en WordPress dificulta que los malos actores tomen el control de tu sitio web.

Al bloquear la ejecución de PHP en los directorios de WordPress donde no es necesaria, cierras una importante brecha de seguridad.

Te mostraremos exactamente cómo proteger tu sitio paso a paso. Sigue leyendo para aprender cómo asegurar tus directorios de WordPress y mantener tu arduo trabajo a salvo.

Cómo deshabilitar la ejecución de PHP en ciertos directorios de WordPress

¿Por qué deshabilitar la ejecución de PHP en ciertos directorios de WordPress?

Por defecto, WordPress hace que ciertos directorios sean escribibles para que usted y otros usuarios autorizados en su sitio web puedan cargar fácilmente temas, plugins, imágenes y videos a su sitio web.

Sin embargo, esta capacidad puede ser mal utilizada si cae en las manos equivocadas, como hackers que pueden usarla para subir archivos de acceso de puerta trasera o malware a tu sitio web de WordPress.

Estos archivos maliciosos a menudo se disfrazan de archivos principales de WordPress. Están escritos principalmente en PHP y pueden ejecutarse en segundo plano para obtener acceso completo a todos los aspectos de su sitio web.

Suena aterrador, ¿verdad?

No te preocupes. Hay una solución fácil para eso. Simplemente deshabilita la ejecución de PHP en ciertos directorios donde no la necesites. Al hacerlo, ningún archivo PHP se ejecutará dentro de esos directorios.

Veamos cómo mejorar la seguridad de WordPress deshabilitando la ejecución de PHP usando el archivo .htaccess.

Deshabilitar la ejecución de PHP en ciertos directorios de WordPress usando el archivo .htaccess

La mayoría de los sitios de WordPress tienen un archivo .htaccess en la carpeta raíz. Este es un archivo de configuración utilizado por Apache, uno de los tipos de software de servidor web más populares. (Si tu host usa un servidor diferente como Nginx, no te preocupes, lo cubrimos en la sección de Preguntas Frecuentes más abajo).

Nota: Si estás utilizando un proveedor de Alojamiento WordPress Gestionado, es probable que ya bloqueen la ejecución de PHP en tu carpeta de subidas por defecto para mantener tu sitio seguro. Si no estás seguro, ¡siempre puedes contactar a su equipo de soporte para verificar!

Este potente archivo de configuración se utiliza para proteger con contraseña el área de administración, deshabilitar la navegación por directorios, generar una estructura de URL amigable para SEO, y más.

Por defecto, el archivo .htaccess se encuentra en la carpeta raíz de tu sitio web de WordPress, pero también puedes crear y usar archivos .htaccess adicionales dentro de tus directorios internos de WordPress.

Para proteger tu sitio web del acceso a archivos de puerta trasera, necesitas crear un archivo .htaccess y subirlo al directorio /wp-content/uploads de tu sitio. Este es el lugar más común donde los hackers intentan ocultar scripts maliciosos, lo que lo convierte en la carpeta más importante para asegurar.

Simplemente crea un nuevo archivo en tu computadora usando un editor de texto sin formato como el Bloc de notas (en Windows) o TextEdit (en Mac). Si usas una Mac, asegúrate de ir a Formato » Hacer texto sin formato en el menú superior.

A continuación, guarda el archivo vacío y nómbralo exactamente .htaccess (asegúrate de que no se guarde accidentalmente como .htaccess.txt).

Ahora, copia y pega el siguiente código en tu archivo .htaccess:

<Files *.php>
  Require all denied
</Files>

Este código le indica a tu servidor que bloquee cualquier intento de ejecutar directamente un archivo que termine en .php desde dentro de esta carpeta. Una vez que hayas pegado el código, guarda el archivo.

A continuación, debes subir este archivo a las carpetas /wp-includes y /wp-content/uploads en tu servidor de hosting de WordPress.

Consejo profesional: Si cometes un error y tu sitio web muestra un error después de subir este archivo, ¡no te asustes! Simplemente usa tu cliente FTP para eliminar el archivo .htaccess que acabas de subir, y tu sitio volverá a la normalidad al instante.

Puedes subirlo usando un cliente FTP o la aplicación Administrador de Archivos en el panel cPanel de tu cuenta de hosting.

Al hacer clic en el botón Subir en el administrador de archivos de Bluehost

Una vez que se agregue el archivo .htaccess con el código anterior, impedirá que se ejecuten scripts PHP en estos directorios.

Extra: Deshabilita la navegación de directorios en WordPress

Mientras editas tu archivo .htaccess, te recomendamos encarecidamente que tomes un paso más para mejorar la seguridad de tu WordPress: deshabilitar la navegación de directorios.

Por defecto, si tu servidor web no encuentra un archivo de índice (como index.php o index.html) en una carpeta, mostrará automáticamente una página que muestra todos los archivos y carpetas dentro de ese directorio.

A los hackers les encanta la navegación de directorios porque les permite examinar fácilmente tus archivos y buscar vulnerabilidades.

Para detener esto, simplemente puedes agregar una línea de código a tu archivo .htaccess principal del sitio web (el que se encuentra en tu directorio raíz, no el que acabas de agregar a tu carpeta de subidas):

Options -Indexes

Para obtener instrucciones más detalladas, puedes consultar nuestra guía dedicada sobre cómo deshabilitar la navegación de directorios en WordPress.

Búsqueda de puertas traseras en WordPress usando Sucuri

Usar este truco de .htaccess ayuda a fortalecer la seguridad de tu WordPress, pero no solucionará un sitio de WordPress que ya ha sido hackeado.

Las puertas traseras están ingeniosamente disfrazadas y ya pueden estar ocultas a simple vista.

Si quieres verificar posibles puertas traseras en tu sitio web, entonces necesitas activar Sucuri en tu sitio web.

Sucuri

Sucuri es el mejor plugin de seguridad para WordPress del mercado. Escanea tu sitio web en busca de posibles amenazas, código sospechoso, malware y vulnerabilidades.

También bloquea eficazmente la mayoría de los intentos de hackeo antes de que lleguen a tu sitio web al agregar un firewall entre tu sitio y el tráfico sospechoso.

Lo más importante es que, si tu sitio de WordPress es hackeado, ellos lo limpiarán por ti. Para saber más, puedes leer nuestra reseña de Sucuri porque hemos estado usando su servicio durante años.

Puedes aprender más en nuestra guía sobre cómo encontrar y solucionar puertas traseras en un sitio de WordPress hackeado.

Preguntas frecuentes sobre cómo deshabilitar la ejecución de PHP

Aquí tienes algunas de las preguntas más comunes que recibimos sobre cómo fortalecer la seguridad de WordPress deshabilitando la ejecución de PHP en ciertos directorios.

1. ¿Qué es un archivo .htaccess y dónde se encuentra?

El archivo .htaccess es un archivo de configuración del servidor utilizado por los servidores web Apache. En WordPress, controla cosas como la estructura de URL de tu sitio web y puede usarse para agregar reglas de seguridad. Normalmente puedes encontrarlo en la carpeta raíz principal de tu instalación de WordPress.

2. ¿Deshabilitar la ejecución de PHP en la carpeta de subidas romperá mi sitio web?

No, esta medida de seguridad no debería afectar el funcionamiento normal de tu sitio web. El directorio wp-content/uploads solo está destinado a cargas de medios como imágenes y videos, no a la ejecución de archivos PHP. Tus temas y plugins guardan sus archivos necesarios en carpetas separadas donde la ejecución de PHP todavía está permitida de forma segura.

3. ¿Es este truco de .htaccess suficiente para asegurar completamente mi sitio?

Si bien este es un paso de seguridad efectivo e importante, es solo una parte de un plan de seguridad completo. Una estrategia completa también debe incluir el uso de un plugin de seguridad de WordPress, mantener actualizados todos tus temas y plugins, y aplicar contraseñas seguras para todos los usuarios.

4. ¿Qué pasa si mi proveedor de hosting web usa Nginx en lugar de Apache?

El truco del archivo .htaccess solo funciona en servidores web Apache. Si tu proveedor de hosting de WordPress utiliza Nginx, no puedes usar un archivo .htaccess para deshabilitar la ejecución de PHP en los directorios de WordPress.

En cambio, Nginx requiere agregar una regla específica (un 'bloque de ubicación') directamente en el archivo de configuración nginx.conf de tu servidor para denegar el acceso PHP en la carpeta de subidas.

Nota: Editar archivos de configuración de Nginx es una tarea avanzada. Un solo error de sintaxis puede colapsar todo tu servidor web. Además, muchos hosts de WordPress administrados restringen el acceso a estos archivos principales.

Debido a esto, recomendamos encarecidamente contactar al equipo de soporte de tu proveedor de hosting. Ellos pueden agregar de forma segura las reglas de denegación de Nginx correctas a tu servidor en solo unos minutos.

5. ¿Qué debo hacer si obtengo un error después de agregar el archivo .htaccess?

Primero, ¡no te preocupes! No has roto tu sitio web de forma permanente. Simplemente elimina el archivo .htaccess que acabas de subir a tu carpeta /wp-content/uploads, y tu sitio volverá a estar en línea.

Si viste un 'Error interno del servidor 500' después de subir el archivo, generalmente significa que tu host web está utilizando una versión anterior del software del servidor Apache. Para solucionar esto, abre tu archivo .htaccess y reemplaza el código que agregaste con el siguiente fragmento en su lugar:

<Files *.php>
deny from all
</Files>

Guarde el archivo y vuelva a subirlo. Esta versión anterior del código hace lo mismo pero es compatible con servidores obsoletos.

Recursos Adicionales sobre Cómo Mejorar la Seguridad de WordPress

Esperamos que este artículo te haya ayudado a aprender cómo deshabilitar la ejecución de PHP en ciertos directorios de WordPress para fortalecer la seguridad de tu sitio web. También podrías querer aprender otras técnicas de seguridad. Aquí tienes algunas de nuestras mejores guías sobre cómo mejorar la seguridad de WordPress:

Si te gustó este artículo, suscríbete a nuestro Canal de YouTube para ver tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Divulgación: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

42 CommentsLeave a Reply

  1. con respecto a la desactivación de la ejecución de PHP en la carpeta wp-includes para prevenir la ejecución de cualquier código de puerta trasera, etc. – pero parece haber muchos, muchos archivos PHP en esa carpeta, por ejemplo: admin-bar.php o author-template.php, por nombrar algunos que parecen importantes para poder ejecutar y me pregunto si colocar un archivo htaccess en esa carpeta no detendrá la ejecución de esos archivos y posiblemente interrumpirá las funciones principales de WordPress? por cierto, gracias por muchos artículos interesantes en tu sitio web

    • A menos que tengas un plugin específico que agregue funcionalidad a los archivos, no debería haber ningún problema en impedir la ejecución de PHP en las carpetas.

      Administrador

      • Gracias por tu respuesta. mi configuración es simplemente: astra/spectra, malcare y all in one seo, en ese caso colocaré .htaccess también en wp-includes. Gracias de nuevo por muchos artículos geniales

  2. Veo esto como una gran forma de asegurar un sitio web al deshabilitar la ejecución de PHP en las carpetas. Según este artículo, solo se aseguran dos directorios, ¿qué pasa con los otros? ¿Se aseguran naturalmente o los hackers no los necesitan durante el intento?

    • Otras secciones de los archivos de tu sitio normalmente requieren un acceso más estricto o tienen archivos PHP que son necesarios para que tu sitio funcione.

      Administrador

  3. Gracias por estos consejos de seguridad. He creado un archivo htaccess y lo subiré por FTP. Tengo un sitio web en mi propio servidor, así que la cuestión de la seguridad depende completamente de mí. Gracias por el siguiente paso para hacer mi WordPress un poco más seguro de nuevo.

  4. También tengo esta alerta en mi plugin Updraft donde las copias de seguridad no se están realizando, ¿puede ser esto debido a htaccess?

    "No se pudo crear el directorio de copias de seguridad..."

    La carpeta existe, pero tu servidor web no tiene permisos para escribir en ella. Necesitarás consultar con tu proveedor de alojamiento web para saber cómo establecer los permisos para que un plugin de WordPress pueda escribir en el directorio. (wp-content/updraft)

  5. FYI: tienes un error tipográfico en tu fragmento de código para el fragmento .htaccess.

    Usar tu fragmento de código tal cual (sin la / de cierre) interrumpe la carga de imágenes.

  6. He encontrado algunos archivos .php en la carpeta de subidas creados por plugins. ¿Puedo asumir que esto no causará un problema, o tengo que analizar cada plugin individualmente?

    • Si te pones en contacto con tus plugins, ellos podrán informarte sobre los detalles de esos archivos.

      Administrador

  7. ¡Gran escritura! Tienes un don para la escritura informativa. Tu contenido me ha impresionado más allá de las palabras. Tengo mucha admiración por tu escritura. Gracias por todas tus valiosas aportaciones sobre este tema.

    • Hola Thato,

      Puedes descargar tu archivo .htaccess a tu computadora como copia de seguridad y luego eliminarlo de tu sitio web. Ve al área de administración de WordPress en Ajustes » Enlaces permanentes y haz clic en el botón de guardar cambios. Esto debería regenerar tu archivo .htaccess.

      Administrador

  8. No hagas wp-content.
    Haz wp-content/uploads.

    Y esto:

    orden permitir,denegar
    denegar a todos

    May very on servers.

  9. ¿Afecta a los archivos de carga para subir en páginas web?
    Descubrí que después de subir este archivo htaccess a la carpeta, muchas de las imágenes de muchas publicaciones no se muestran.

  10. Sí, denegar el acceso a los archivos php en el directorio de inclusión rompe el sitio porque la inclusión realmente obedece las restricciones de .htaccess.

    Pero la restricción en el directorio de subidas es muy inteligente, y esto debería estar ahí POR DEFECTO en el directorio de subidas, y no hay ninguna buena razón para que no esté presente.

  11. ¡ZOMG! ¿No puedes simplemente deshabilitar el acceso de escritura a la carpeta /wp-includes?
    ¿Por qué luchar con las consecuencias cuando puedes prevenir la causa?

  12. ¿cómo implementar este código si tenemos una combinación de mayúsculas y minúsculas en la extensión del archivo, por ejemplo, on.php en mi sitio web funciona, pero no funciona si el archivo se llama con.PHp, .PHP, .PhP o una combinación de ellos, el script backdoor todavía se ejecuta?

    Gracias

  13. Hola Syed,
    Gracias por una publicación tan informativa y, de hecho, proporciona una gran solución para proteger WordPress de los hackers.

  14. Creé un archivo .htaccess en la carpeta wp-includes. El sitio se veía bien, pero mi editor WYSIWYG en las páginas de administración no funcionaba. Tuve que eliminar el archivo .htaccess de nuevo. (WP 3.9.1)

  15. También encontré mi carpeta wp-includes llena de archivos php y no veo cómo usar ese archivo .htaccess allí no rompería algo. Lo usé en el directorio de subidas.

  16. perdona mi mal inglés…
    seguí todas tus instrucciones en este artículo, pero cuando voy a mi panel para agregar una nueva publicación, mi sección de publicaciones estaba desordenada. … sospecho que el .htaccess fue el problema.
    cuando lo borré, la publicación estaba bien.

  17. Intenté esto en mi directorio /wp-includes/, que está lleno de archivos php. Por supuesto, ya no pude acceder al sitio. ¿Realmente quisiste incluir el directorio includes para usarlo con el archivo .htaccess?

    ¿Quizás quisiste decir /wp-includes/images?

      • Extraño, mi carpeta wp-includes tiene más de 90 archivos php. Y rompe el sitio. Lo quité inmediatamente.

        Pero lo puse en la carpeta /wp-content/uploads/ y funciona muy bien allí. Gracias por responder

        • Poner un archivo htaccess que niega el acceso a archivos php en un directorio lleno de archivos php parece bastante extraño. Supongo que es porque estos archivos normalmente solo se incluyen, no se ejecutan directamente. Si es así, ¿no sería mejor simplemente negar el acceso a todo el directorio?

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios se moderan de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO se publicará. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.