Saltar al contenido

Pintelog

pintelog.mrubi.dev
Captura de Pintelog

El reto principal

Publicar una foto sin recargar la página parece trivial hasta que lo haces sin framework: hay que subir el archivo por AJAX, validarlo en el servidor (tipo real, no extensión), guardarlo fuera de la raíz web, escribir el registro en base de datos y devolver el HTML del post ya renderizado para insertarlo en el muro. Cada uno de esos pasos puede fallar por separado y el frontend tiene que enterarse de cuál falló.

Problema concreto

El registro exige confirmar el correo antes de activar la cuenta, y los correos de verificación caían todos en spam. Enviarlos con mail() desde el VPS no bastaba: hubo que montar PHPMailer sobre SMTP autenticado y configurar los registros SPF y DKIM del dominio. Hasta que el DNS no estuvo bien, ningún usuario podía completar el registro.

Qué aprendí

Escribir la capa de infraestructura a mano una vez cambia cómo lees la documentación de cualquier framework después. Saber por qué existe un middleware de sesión, o qué protege un token CSRF, es distinto cuando ya te ha mordido no tenerlo.

  • Validar los archivos subidos por su tipo real (finfo), nunca por la extensión del nombre
  • Guardar los archivos de usuario fuera de la raíz web y servirlos por un script controlado
  • Un servidor de correo propio es 20% código y 80% registros DNS bien puestos
Tecnologías
  • PHP
  • POO
  • AJAX
  • MySQL
  • PHPMailer
  • VPS