Las criticidades de WordPress: la perspectiva de un desarrollador

Las criticidades de WordPress: la perspectiva de un desarrollador

Cada vez es más frecuente que los desarrolladores acaben utilizando un CMS como WordPress, aunque no les guste la plataforma.

Los desarrolladores expertos a menudo prefieren usar soluciones personalizadas, especialmente cuando eres un desarrollador que es realmente bueno en la codificación. Con una solución personalizada puedes crear aplicaciones muy elegantes que funcionan muy bien. Sin embargo, los desarrolladores terminan usando un CMS como WordPress incluso si no les gusta mucho la plataforma.

Este artículo está dirigido a estos desarrolladores y aborda muchos de los desafíos que se encuentran al trabajar con WordPress (WP). Explicaremos cuáles son estas dificultades y también daremos una sugerencia: la ayuda de Plesk, que proporciona un kit de herramientas WP que realmente ayuda a tener en cuenta algunas de las principales criticidades del CMS más querido del mundo: WordPress.

Por qué los desarrolladores usan WordPress

No se equivoque, WordPress es el CMS más popular del mercado por muy buenas razones. En esta sección describimos por qué el CMS es tan popular incluso entre los desarrolladores experimentados que realmente pueden escribir su propio código.

En primer lugar, WordPress es muy fácil de instalar. Todo lo que necesita es el entorno LAMP/LEMP estándar: Linux, Apache/Nginx, PHP y MySQL/MariaDB como DBMS. Si lo tienes, puedes empezar a instalar WordPress.

La personalización es igual de fácil porque WP CMS viene con una amplia gama de complementos, incluidos temas para personalizar la apariencia y los complementos que agregan funcionalidad. También es posible crear su propio tema y los desarrolladores experimentados también pueden crear sus propios complementos, pero este proceso es más complejo.

Quizás la principal razón de la popularidad de WordPress es, por supuesto, el hecho de que es accesible para usuarios no técnicos. Una vez instalado, WP no requiere experiencia en codificación ni comprensión del software para funcionar bien, los usuarios novatos pueden publicar un sitio web y configurar una instancia de WordPress inmediatamente después del trabajo.

¿Cuál es exactamente el problema con WordPress?

Bueno, el CMS más popular del mundo tiene muchos problemas que considerar. No tenemos la intención de hacer un escándalo por los problemas de WordPress, pero la siguiente es una discusión franca y esperamos que el equipo de desarrollo detrás de este CMS increíblemente popular tome los siguientes puntos como una crítica positiva. He aquí por qué creemos que WordPress es frustrante para los desarrolladores:

Ampliamente capaz, pero nunca excelente

El comienzo de WordPress fue simple. WP nació para ser una plataforma para aquellos que querían escribir y publicar un blog. El CMS ha cambiado por completo a lo largo de los años y ahora no se parece en nada a sus humildes comienzos. Algunas personas lo usan como un sistema básico para administrar un sitio completo, como una plataforma para tiendas en línea e incluso como una forma de generar sitios estáticos (una locura, pero esto también lo hemos visto a lo largo de los años)

De alguna manera destaca cuán adaptable es el CMS y estamos de acuerdo con esa afirmación, pero el problema de ser tan flexible es que se vuelve difícil sobresalir en cualquier rol único. Una forma de darse cuenta de esto es mirar a través de la lente de los complementos: los miles de complementos de WordPress disponibles muestran cómo las personas están tratando de forzar a WordPress para que sea algo que simplemente no es o, peor aún, para que haga algo de lo que no es capaz. lo hace, duele. Es por eso que nosotros, cuando usamos WordPress y lo usamos a menudo y de buena gana, nunca lo cargamos con complementos que no son estrictamente necesarios. En ese momento, preferimos hacerlos nosotros mismos.

Claramente, WordPress está hecho para este enfoque "hecho a sí mismo" y, obviamente, la flexibilidad tiene muchas ventajas, sin duda. Pero sin un fuerte enfoque en una tarea en particular, el CMS lucha mucho para ofrecer una solución clara. Este enfoque en tratar de ser todo para todos está causando grandes problemas. Sin embargo, debemos señalarlo: WordPress todavía funciona bien como plataforma para crear blogs y sitios web y sitios de comercio electrónico no complejos.

Hacks and Cracks: WordPress puede ser una puerta abierta

En resumen, WordPress es pirateado las 24 horas del día y es la queja más grande que hemos escuchado del mundo de los desarrolladores. No se puede negar, el CMS está lleno de agujeros de seguridad, nunca termina. Es como una manta corta: se ajusta por un lado y se destapa por el otro. En parte, la cantidad de hacks se debe a la popularidad de WordPress, pero también a lo abierto que es WordPress.

Dado que cualquiera puede ver el código fuente abierto del CMS, esto permite a los piratas informáticos encontrar debilidades en el código. No queremos decir que el código de código abierto sea un mal enfoque, pero creemos que la naturaleza de código abierto del CMS de WordPress está contribuyendo a sus interminables problemas de seguridad.

El análisis muestra que los sitios de WordPress representan más de una cuarta parte de Internet. El equipo de WordPress lo sabe y trata de hacer todo lo posible para asegurarse de que el CMS sea seguro, pero dado que los ciclos de desarrollo son tan rápidos hoy en día, puede ser difícil asegurar completamente una aplicación compleja. Y cuando fallan los esfuerzos de seguridad, millones de sitios web pueden estar en riesgo.

No tenemos una solución obvia para los desafíos de seguridad de WordPress que no sea, por supuesto, la obvia "actualización de su instancia de WordPress". Incluso entonces, el ciclo de lanzamiento de WordPress trae consigo problemas únicos e interminables.

Mucha gente dice que cuidar la seguridad de WordPress es simple, y eso es cierto en gran medida, pero la pregunta es ¿por qué los propietarios de sitios deben hacer una lista de tareas pendientes para asegurarse de que WordPress es seguro? ¿Por qué esta parte de seguridad de WordPress no está lista para usar?

  • Es fácil para alguien subir un archivo ejecutable a WordPress, y esta opción debería estar limitada por defecto. Solo se necesita una persona un poco inteligente para cargar un archivo con código malicioso en un script PHP y su sitio se ve comprometido.
  • Actualmente, las opciones se pueden configurar en el sistema de archivos. En cambio, WordPress debería eliminar esto y asumir que el sistema de archivos es de "solo lectura". Si bien el núcleo de WordPress hace esto, los complementos no siguen este patrón de comportamiento. Si encuentra un complemento que cambia su archivo de configuración mientras está en producción, deje de usarlo. Si lo hace, indica un sistema de archivos grabable y, en consecuencia, una forma fácil de realizar cambios maliciosos. Una solución es eliminar el archivo wp-config.php de la raíz del sistema (WordPress funciona de todos modos) pero no es una garantía total de seguridad y en cualquier caso impide el correcto funcionamiento de muchos complementos escritos a mano por desarrolladores inconscientes. .
  • De forma predeterminada, WordPress permite a los usuarios realizar tantos intentos de inicio de sesión como deseen. Esto abre la puerta a un ataque de fuerza bruta en el que los piratas informáticos siguen probando contraseñas aleatorias hasta que el inicio de sesión es exitoso. El CMS de WordPress debería deshabilitar los intentos de inicio de sesión ilimitados tras la instalación.

Esta no es una lista exhaustiva, es solo un par de puntos. Obviamente, una gran solución de software, especialmente una solución de código abierto, no puede ser completamente invulnerable a los ataques. Pero nuestro punto es que los desarrolladores serios son reacios a usar WordPress precisamente porque es muy vulnerable. Los desarrolladores expertos preferirían crear una aplicación completamente nueva que satisfaga elegantemente sus necesidades y pueda protegerse rigurosamente, sin preocuparse por vulnerabilidades futuras desconocidas.

O, al hacer el mejor uso de la configuración de PLESK y no cargar WordPress con complementos "no recomendados" o peor "gratuitos" o peor aún mal escritos (se necesita experiencia en el campo para poder emitir juicios al respecto) aún puede hacen de WordPress una excelente plataforma también en términos de seguridad. Pero ya no es una gestión de "hágalo usted mismo", se necesita una mano experta.

Los complementos como fuente de problemas

Un buen desarrollador no recurre a un complemento la primera vez que se atasca. En cambio, los buenos desarrolladores intentan crear una solución simple y elegante. Por el contrario, confiar siempre en los complementos buscándolos en Internet o confiar en los sugeridos por la Comunidad es una forma de pensar muy equivocada.

En última instancia, un complemento facilita la adición de funciones específicas a WordPress, lo que hace que la amplia gama de complementos disponibles para WP sea una fortaleza del CMS, pero también es un riesgo. Por mucho que los complementos puedan hacer las cosas más fáciles y rápidas, los complementos también presentan muchos riesgos de seguridad al obligarlo a elegir qué versión de WP puede usar y, al mismo tiempo, inflar su instancia de WordPress más allá del reconocimiento. su presencia en línea en crisis, la velocidad de apertura del sitio y, por lo tanto, la accesibilidad y, en consecuencia, la indexación correcta en los motores de búsqueda.

Complementos y seguridad

Primero, veamos los problemas de seguridad que crean los complementos. Un informe sugiere que más de la mitad de los problemas de seguridad conocidos de WordPress provienen de los complementos. Los desarrolladores están sujetos a las buenas prácticas que sigue un fabricante de complementos, lo que podría no ser tan bueno. Por lo tanto, como desarrollador, debe probar exhaustivamente un complemento antes de usarlo. Hasta cierto punto, este proceso de investigación puede eliminar el tiempo que ahorra con los complementos, entonces, en ese momento, también podría considerar desarrollar desde cero la función necesaria para agregar al sitio.

Límites en las versiones de WP

Conocido como una "restricción de versión", los complementos pueden limitar qué versión de WP CMS puede ejecutar. Ahora, WordPress es muy agresivo con su ciclo de lanzamiento, por lo que lanza regularmente una nueva actualización y, de hecho, a menudo sucede que la plataforma lanza varias versiones pequeñas o parches en un mes determinado. Esto es comprensible ya que el equipo de WP está constantemente arreglando los vectores de ataque. Sin embargo, todas estas actualizaciones tienen un problema: una actualización de WP puede romper un complemento, lo que hace que su sitio deje de funcionar o se bloquee.

Por supuesto, debe mantener su CMS actualizado, pero las restricciones de versión impuestas por los complementos pueden dificultar este trabajo. Algunos desarrolladores de complementos siempre están probando y actualizando sus complementos, pero este pequeño "mundo" de complementos premium no representa a la mayoría. Fuera de estos complementos premium, existe un riesgo real de que una actualización de la versión de WP literalmente rompa el sitio.

Complemento hinchado

Supongamos que la mayoría de los desarrolladores saben que es importante crear proyectos optimizados que no utilicen un exceso de código. Ahora, algunos complementos cumplen con este principio, pero muchos complementos están muy inflados porque estos complementos intentan resolver todos los problemas que un usuario pueda tener. Es común que un desarrollador encuentre que un complemento resuelve un problema mientras ofrece una solución a otros cincuenta problemas que no son relevantes para su sitio. (Por no hablar de los temas y "constructores").

Los complementos interrumpen su flujo de trabajo de WordPress

Finalmente, otro problema común que crean muchos complementos es el hecho de que un complemento puede dificultar la experiencia del usuario en WordPress, esto depende lamentablemente del efecto. Complementos hinchados de WordPress. Por ejemplo, un complemento puede cambiar por completo la forma en que se crea y difunde una publicación en todo el sitio.

Esto da como resultado un problema que los desarrolladores de WP enfrentan muy comúnmente, sienten que tienen que trabajar demasiado con un complemento, en lugar de simplemente usar el complemento. Inevitablemente, los desarrolladores asumen este proceso de eludir los complementos porque puede parecer que ese complemento está resolviendo un problema de proceso (que inevitablemente no existe).

La arquitectura web ha evolucionado

Ya mencionamos que WordPress existe desde hace un tiempo. Cuando se creó, los desarrolladores pensaron que un sitio web siempre utilizaría un único servidor, junto con un único sistema de archivos. Sin embargo, los desarrolladores utilizan cada vez más lo que se llama arquitectura de microservidor que utiliza múltiples nodos. Lo hacen porque esta forma de trabajar es más escalable y flexible. Pero usar WordPress en una arquitectura complicada puede crear problemas, por ejemplo, la dependencia casi exclusiva de FTP para las actualizaciones de WP CMS.

Los desarrolladores modernos obviamente pensarían que actualizar el código a través de FTP es simplemente arcaico. Los desarrolladores suelen utilizar un flujo de trabajo específico para que los posibles problemas puedan detenerse antes de que el código entre en funcionamiento. Esto significa que el desarrollo se realiza localmente, la versión del código se controla y ese código también se prueba automáticamente, todo a través de un proceso de integración continua. Entonces, simplemente cargar código nuevo en un entorno que ejecuta bucles cortos, lo que significa que hay una alta probabilidad de que las cosas salgan mal.

Más grande que el problema de los parches es simplemente la suposición de que estamos trabajando con un solo sistema de archivos en un solo nodo. Un clúster de servidores web de varios nodos mejora tanto las fallas de hardware como el rendimiento, razón por la cual este enfoque se adopta cada vez más. Sin embargo, WP tiene un obstáculo, ya que la instalación de una actualización de tema o complemento a través de FTP significa que solo se puede actualizar un sistema de archivos a la vez. Entonces, con un clúster de varios nodos, debe realizar esta actualización para cada nodo.

Los desarrolladores pueden solucionar este problema, pero sigue siendo una dificultad que no se resuelve fácilmente. Además, el proceso requiere que se pueda escribir en el sistema de archivos, lo que a su vez genera una gran preocupación de seguridad para la base de datos, que es el corazón palpitante de WordPress.

Datos huérfanos y estructura de datos en general

Al principio, la estructura de datos de WordPress es simple. Sin embargo, pronto surge que hay tablas redundantes en la base de datos de WP. Por ejemplo, ¿por qué es necesario separar los metadatos en dos tablas: una llamada "wp_posts" y otra llamada "wp_postmeta"? ¿No es mejor incluir todos los datos en una tabla? Lo mismo ocurre con la tabla de comentarios, que tiene una segunda tabla asociada para sus metadatos.

El resultado es que quedan datos adicionales en toda la base de datos. Sí, WP incluye algunas funciones que ayudan a reducir el efecto de los datos huérfanos, pero las funciones fallan cuando necesita manipular un recuento de filas de miles de filas. Básicamente, las características de WordPress provocan tiempos de espera del servidor y provocan fugas de memoria y simplemente no son efectivas.

Por supuesto, puede optar por reducir simplemente los datos huérfanos escribiendo directamente consultas SQL para hacerlo. Pero debe comprender a fondo cómo se conectan las tablas para poder escribir las consultas SQL correctas. El grado de separación de datos en la base de datos de WordPress simplemente resulta superfluo.

Qué hace Plesk Toolkit para WordPress para mejorar las cosas

El kit de herramientas de WordPress de Plesk es una manera fácil de configurar y personalizar una instancia de WordPress, todo desde un único panel de control. Puede usarlo siempre que esté instalado en su sitio web. Aquí hay algunas áreas en las que WordPress Toolkit ayuda a cuidar WP:

Gestion de seguridad

Con el kit de herramientas, puede cerrar automáticamente los agujeros de seguridad más obvios. Por ejemplo, puede cambiar el ping de XML a RPC, asegurarse de que la carpeta "wp-content" sea segura y mucho más. El kit de herramientas muestra el estado de seguridad de su sitio y señala los problemas con "peligro" o "advertencia", que es una recomendación para mejorar la seguridad.

Actualización de su instancia de WP

Disponible como función complementaria en Toolkit 3.x y versiones posteriores, la función Actualizaciones inteligentes le permite mantener un sitio de producción en funcionamiento y actualizarlo al mismo tiempo, sin riesgo de romper el sitio. La herramienta comprueba si hay problemas que puedan ocurrir debido a la actualización y le indicará si existe algún tipo de riesgo.

Clonazione

Hay muchas razones por las que podría querer hacer una copia de su sitio de WordPress. Por ejemplo, es posible que tenga un sitio de ensayo en el que pueda probar los cambios antes de publicarlos. Una vez que esté listo, le gustaría copiar el contenido del sitio.

O bien, es posible que tenga un sitio público y desee hacer una copia a la que no desea que el público tenga acceso. Otro ejemplo son los desarrolladores profesionales que tienen una copia modelo de una instalación de WordPress y solo quieren clonarla, incluidos los temas y complementos, automáticamente.

También tenemos clientes que solo quieren hacer un par de copias de un sitio por varias razones, como demostrar cómo un sitio puede verse diferente con algunos cambios.

Cualquiera sea el motivo, la herramienta de clonación en el kit de herramientas de WordPress facilita la copia de todo, incluidos los archivos del sitio, la base de datos del sitio y todas las configuraciones de WP CMS.

sincronización

Por varias razones, es posible que desee asegurarse de que dos sitios web de WordPress coincidan. WP Toolkit le permite sincronizar automáticamente tanto la base de datos WP como todos los archivos WP.

Si tiene una copia provisional de su sitio, mientras su copia pública se ejecuta en otro lugar, es posible que desee sincronizar los sitios porque quiere copiar los cambios que realizó en el sitio provisional al sitio en vivo de WP.

Del mismo modo, es posible que desee copiar algunos datos del sitio de producción en su instancia de prueba para que pueda verificar si los cambios realizados en la versión de prueba funcionan bien con los datos en vivo. O bien, los cambios que realizó en su sitio de prueba causaron un cambio en las tablas de su base de datos, en cuyo caso el kit de herramientas solo le permite sincronizar estos cambios con su base de datos si lo desea.

Otro caso de uso para la función de sincronización de WP Toolkit es cuando un desarrollador ha actualizado un sitio de prueba a una versión comercial de WordPress y quiere reflejar los cambios en un sitio en vivo.

Tiene la opción de sincronizar todo el WP CMS, o solo algunas partes. Por lo tanto, puede duplicar los archivos de su WP, su base de datos o ambos. Se ofrece más granularidad en el sentido de que puede elegir entre sincronizar toda la base de datos o solo tablas, o incluso tablas que están en el origen pero no presentes en el destino. También es posible duplicar tablas individuales.

Búsqueda de errores en WP

Plesk WordPress Toolkit también permite a los desarrolladores detectar y corregir automáticamente errores en el código fuente del sitio web habilitando su modo de depuración.

Conclusión.

Después de todo lo anterior, está claro que se vuelve extremadamente importante elegir no solo el desarrollador con el que trabajar o la agencia que puede seguirte, sino sobre todo el alojamiento en el que alojar tu sitio en WordPress. Incluso de estas cosas entendemos lo que significa tener un sitio oscuro en un alojamiento profesional o no.

WordPress no es un “objeto” fácil de manejar. Claro, te sientes libre, crees que no necesitas un desarrollador o no estás atado a una agencia, crees que es maravilloso poder hacerlo tú mismo pero en realidad, la verdad dice lo contrario y hoy en día la seguridad es un tema que está ya no secundaria sino primaria también en virtud de las obligaciones y responsabilidades frente a terceros.