kcgi: librería minimalista y segura para CGI y FastCGI en C/C++

Fuentes: kcgi: minimal and secure CGI and FastCGI library for C/C++

kcgi es una librería de código abierto para aplicaciones web en C y C++ que ofrece soporte para CGI y FastCGI. Su diseño se caracteriza por ser minimalista, segura y auditable, priorizando la seguridad mediante el uso de sandboxing y separación de procesos para manejar datos de red no confiables. Esta arquitectura aísla el análisis y validación de entradas no confiables en un proceso hijo aislado, limitando así el impacto de posibles vulnerabilidades en el entorno del sistema principal.

La librería soporta funciones avanzadas como compresión automática, manejo de todas las operaciones de entrada HTTP (cadenas de consulta, cookies, cuerpos de página, multipart) con validación, autenticación y caché de salida configurable. Además, incluye escritores formateados para JSON y XML, así como depuración de solicitudes. kcgi está disponible en múltiples sistemas operativos, incluyendo GNU/Linux (musl y glibc), OpenBSD, NetBSD, FreeBSD, Solaris, OmniOS y macOS (Mojave en adelante), soportando arquitecturas i386, amd64, powerpc, arm64 y sparc64.

Para su instalación, se recomienda verificar si el sistema ya tiene la librería empaquetada, como en OpenBSD o Arch Linux. Si no, se puede compilar desde el repositorio de GitHub. La única dependencia de compilación obligatoria es BSD make (bmake en Linux) y zlib. Para pruebas de regresión, se requiere libcurl. kcgi funciona con servidores web como Apache, nginx y el httpd de OpenBSD, que utiliza FastCGI nativamente. El rendimiento de kcgi depende de la capacidad del sistema operativo para gestionar procesos y la transferencia de datos en FastCGI, lo que implica un sobrecoste de rendimiento aceptable en favor de la seguridad y la estabilidad.