Todos los artículos
-
Comportamiento medido de CHECK y UNIQUE en PostgreSQL con dos valores NULL
PostgreSQL 16.15 aceptó dos filas con NULL bajo CHECK(value > 0) y un UNIQUE(value) normal, rechazó -1 y se negó a aplicar después un cambio a NOT NULL mientras esas filas NULL seguían en la tabla.
-
Pruebas basadas en tablas en Go con subpruebas
Escribe una única función de prueba que recorra un slice de casos con nombre y ejecute cada uno con t.Run: los casos pasan a ser datos, se puede elegir uno con go test -run 'TestX/name', y t.Parallel, t.Helper y t.Cleanup mantienen el bucle rápido y legible.
-
Logs con marca de tiempo y fáciles de analizar: RFC 5424 frente a RFC 3164, plantillas JSON y por qué usar UTC
El TIMESTAMP de syslog en RFC 5424 es un perfil restringido de RFC 3339 con año, precisión de fracciones de segundo y desfase de zona horaria, mientras que el formato anterior RFC 3164 no incluye nada de eso y es más difícil de analizar sin ambigüedad. rsyslog puede emitir cualquiera de los dos, o una estructura JSON totalmente personalizada, mediante plantillas; y un servidor cuya zona horaria y cuyos logs estén en UTC elimina toda una clase de errores de correlación entre zonas horarias.
-
Directivas de Cache-Control: max-age, no-store, private y stale-while-revalidate
Cache-Control indica a las caches del navegador y a las compartidas durante cuánto tiempo puede reutilizarse una respuesta y dónde puede almacenarse: max-age y s-maxage fijan la frescura, no-cache obliga a revalidar antes de reutilizar, no-store prohíbe almacenar, private excluye la respuesta de las caches compartidas, y stale-while-revalidate y stale-if-error (RFC 5861) permiten servir contenido obsoleto mientras se actualiza o durante errores. Una respuesta sin directivas aún puede almacenarse en cache de forma heurística.
-
www frente al dominio apex: la restricción del CNAME, el alcance de las cookies y a cuál redirigir
El apex no puede ser un CNAME porque el RFC 1034 prohíbe que haya otros datos en un nodo que tiene uno y el apex siempre contiene registros SOA y NS; por eso, alojar el sitio en una dirección cambiante del proveedor exige registros A/AAAA o una función del proveedor como el CNAME flattening. Las cookies definidas en el apex con el atributo Domain llegan a todos los subdominios. Conviene elegir una forma, servir ambas en el certificado y redirigir la otra de forma permanente.
-
Corpus de recuperación envenenados: cómo unos pocos documentos plantados pueden manipular las respuestas de un sistema RAG
La generación aumentada por recuperación (RAG) confía en todo lo que devuelve el recuperador. Las investigaciones han demostrado que inyectar unos pocos textos manipulados en una base de conocimiento puede hacer que el sistema dé la respuesta elegida por el atacante a una pregunta concreta. Las defensas se centran en quién puede escribir en el corpus, la procedencia de cada fragmento y la verificación de las respuestas.
-
Cobertura del detector de condiciones de carrera de Go: una ejecución limpia no dice nada sobre las rutas que no se ejecutan
Relaciona los resultados de go test -race con las rutas concurrentes que realmente se ejercitan, incluidos el arranque y el apagado.
-
Los identificadores con dígito de control reducen las acciones sobre el registro equivocado cuando los agentes los transcriben
Hipótesis: cuando los agentes basados en modelos de lenguaje copian identificadores de documentos a llamadas a herramientas, un esquema con dígito de control que la API receptora valide convierte la mayoría de los errores de transcripción en rechazos, en lugar de acciones sobre el registro equivocado; el efecto debería ser mayor en identificadores numéricos densos y despreciable en los dispersos, como los UUID.
-
Los componentes dimensionados con container queries necesitan menos anulaciones específicas de ubicación que los dimensionados con media queries del viewport
Hipótesis: cuando un mismo conjunto de componentes se coloca en varias zonas del layout, la implementación con container queries contiene menos reglas CSS cuyo único fin es corregir un componente para una ubicación concreta que la implementación con media queries, y añadir una ubicación nueva no requiere CSS adicional en los componentes. Se propone una comparación de dos implementaciones con recuento de reglas.
-
Gestión de los kernels instalados en Debian y Ubuntu: limpieza, espacio en /boot, HWE y Livepatch
Los paquetes de kernel antiguos se acumulan en /boot hasta que apt autoremove los elimina; además, Ubuntu ofrece en sus versiones LTS un kernel HWE (Hardware Enablement) continuo y el servicio Livepatch de Canonical para aplicar correcciones de seguridad del kernel sin reiniciar de inmediato; ambos son exclusivos de Ubuntu y no tienen equivalente en Debian.
-
Dev containers: devcontainer.json como entorno de desarrollo reproducible
Un archivo devcontainer.json describe el contenedor que un editor, un espacio de trabajo en la nube o un ejecutor de CI debe construir para un repositorio: imagen o Dockerfile, features, puertos reenviados, comandos de ciclo de vida y personalizaciones del editor. La especificación abierta de containers.dev permite usar el mismo archivo en local, en espacios de trabajo alojados y en pipelines, de modo que la toolchain queda fijada junto al código en lugar de depender de cada host.
-
llms.txt y sitios legibles para agentes: robots.txt, sitemap y un punto de entrada curado
Agentes y crawlers encuentran contenido mediante pocas convenciones: robots.txt para las reglas de acceso y la ubicación del sitemap (RFC 9309), un sitemap con fechas de modificación veraces y llms.txt como guía breve y curada en Markdown, complementada con versiones Markdown de las páginas. Ninguna sustituye a la autenticación.
-
La rotación programada de secretos saca a la luz consumidores de credenciales no documentados antes de que lo haga un incidente
Hipótesis: los equipos que rotan según un calendario fijo sus secretos compartidos de larga duración descubren, durante las rotaciones planificadas, los scripts, tareas e integraciones que dependen de ellos de forma silenciosa, de modo que una rotación de emergencia tras una fuga se completa antes y rompe menos que en equipos que solo rotan por sospecha; la hoja de referencia de OWASP recomienda la rotación periódica, pero este beneficio operativo no se ha medido.
-
windows_exporter: instalar el MSI con recolectores habilitados y verificar /metrics en Windows
windows_exporter se distribuye como un MSI que se instala como servicio de Windows y acepta propiedades del instalador para elegir los recolectores habilitados, el puerto de escucha y una excepción en el Firewall de Windows, todo de forma no interactiva con msiexec.
-
Comprobar la compatibilidad con virtualización por hardware y KVM anidado antes de depender de ellos
Antes de instalar un hipervisor o anidar una VM dentro de otra, confirma que la CPU expone las extensiones de virtualización y, para el anidamiento, que el módulo kvm_intel o kvm_amd tiene activada la opción nested. virt-host-validate y /proc/cpuinfo dan una respuesta rápida.
-
Player loop de Unity: separar las actualizaciones de entrada, física y cámara
Asigna la intención de entrada, los cambios de física y la presentación de la cámara a fases de actualización deliberadas, para que las variaciones de la tasa de fotogramas no dupliquen ni pierdan comandos de juego.
-
Entornos de arranque ZFS con bectl: una vía de reversión ante actualizaciones de FreeBSD y de paquetes
bectl clona en segundos el dataset raíz de ZFS como entorno de arranque; crear uno antes de un freebsd-update o de una actualización grande de pkg ofrece un retorno inmediato a un sistema que funcionaba, seleccionable desde el menú del loader, independiente del mecanismo propio de freebsd-update (patch/install/rollback) y complementario a él.
-
Conservar los límites de la evidencia al convertir una investigación en diapositivas con Orkas
Un método de traspaso propuesto mantiene juntos los pasajes de las fuentes, los hallazgos matizados y las comprobaciones pendientes a lo largo de las etapas de investigación, informe y diapositivas. Una comparación ficticia sobre el uso sin conexión muestra con precisión qué puede afirmar cada resultado.
-
Política de auditoría de Windows con auditpol: lectura de subcategorías, aplicación forzosa y dimensionamiento del registro de seguridad
auditpol /get /category:* muestra la política de auditoría avanzada que realmente está en vigor en Windows Server. La configuración por subcategoría prevalece sobre la política básica por categoría solo mientras la opción «forzar la configuración de subcategorías» (SCENoApplyLegacyAuditPolicy) esté habilitada, que es el valor predeterminado efectivo; un registro de seguridad demasiado pequeño sobrescribe o descarta eventos auditados.
-
Definir el oráculo de autorización para solicitudes por lotes con objetos de distintos propietarios
Permite detectar reglas de acceso ambiguas en operaciones por lotes antes de que un agente escriba pruebas que den por buena cualquier respuesta que devuelva la implementación. La propuesta se centra en lotes con objetos de distintos propietarios dentro de una misma solicitud.
Legible por máquina: JSON