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

Encontrar un archivo PHP extraño en tu carpeta de subidas de WordPress puede ser alarmante. Conocemos bien esta sensación porque hemos ayudado a cientos de usuarios que han descubierto el mismo problema.

Esto a menudo apunta a una brecha de seguridad que muchas personas pasan por alto. Los hackers pueden abusar de directorios escribibles para subir scripts maliciosos que les dan acceso de puerta trasera a tu sitio web.

La buena noticia es que hay una forma sencilla de bloquear uno de sus métodos de ataque favoritos. Al deshabilitar la ejecución de PHP en carpetas específicas, haces que tu sitio sea un objetivo mucho más difícil.

Te mostraremos exactamente cómo hacer esto paso a paso. Vamos a repasar cómo agregar esta importante capa de seguridad a tu sitio de WordPress.

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 cargar archivos de acceso de puerta trasera o malware en su 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 a continuación).

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 de archivos de acceso de puerta trasera, necesitas crear un archivo .htaccess y subirlo a los directorios /wp-includes y /wp-content/uploads de tu sitio. Proteger la carpeta /wp-content/uploads es especialmente importante, ya que este es el lugar más común donde los hackers intentan colocar scripts maliciosos.

Simplemente crea un nuevo archivo en tu computadora usando un editor de texto como el Bloc de notas (en Windows) o TextEdit (en Mac). Luego, guarda el archivo vacío con el nombre .htaccess

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.

Puedes subirlo usando un cliente FTP o la aplicación Administrador de archivos en el panel de control 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.

Búsqueda de puertas traseras en WordPress usando Sucuri

Usar este truco de .htaccess te 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 deseas verificar posibles puertas traseras en tu sitio web, entonces necesitas activar Sucuri en tu sitio web.

Sucuri

Sucuri es el mejor plugin de seguridad de 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, lo limpiará por ti. Para obtener más información, 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 las URL de tu sitio web y se puede usar 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. Los directorios wp-content/uploads y wp-includes no están diseñados para contener archivos PHP que se ejecuten directamente. Tus temas y plugins guardan sus archivos necesarios en carpetas separadas donde la ejecución de PHP todavía está permitida.

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 sus temas y plugins, y exigir contraseñas seguras para todos los usuarios.

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

El archivo .htaccess solo funciona en servidores web Apache. Si su proveedor de hosting usa Nginx, necesitará agregar una regla diferente al archivo de configuración de su servidor para lograr el mismo resultado. Recomendamos contactar al equipo de soporte de su proveedor para obtener ayuda con el código correcto para su plataforma.

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

En casos muy raros, podría ver un 'Error interno del servidor 500' después de subir el archivo. Esto generalmente significa que su proveedor de hosting web está utilizando una versión anterior del software del servidor Apache.

Si esto sucede, simplemente abra su archivo .htaccess y reemplace el código que agregó 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.

Guías expertas 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 obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Descargo de responsabilidad: 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 son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.