KCGI est une bibliothèque CGI et FastCGI open source pour les applications Web C / C ++. Il est minime, sécurisé, vérifiable et s'inscrit dans votre pile de logiciels BCHS.
Pour vous tenir au courant de la version stable actuelle de KCGI , visitez https://kristaps.bsd.lv/kcgi. Le site Web contient également l'installation canonique, le déploiement, les exemples et la documentation d'utilisation.
Vous aurez besoin d'un compilateur C (GCC ou Clang), ZLIB ( ZLIB ou ZLIB-DEV pour certains gestionnaires de packages) et BSD Make ( Bmake pour certains gestionnaires) pour la construction.
Sur certains systèmes Linux, vous pourriez en outre avoir besoin des en-têtes de noyau Linux installés à l'aide du package Linux-Headers ou similaire.
Commencez par le clonage ou le téléchargement. Ensuite, configurez avec ./configure , compilez avec make (bsd make, afin qu'il puisse être bmake sur votre système), puis make install (ou utilisez sudo ou doas , le cas échéant). Pour installer dans un autre répertoire sur /usr/local , définissez la variable PREFIX lorsque vous exécutez configure .
./configure PREFIX= ~ /.local
make
make installUn idiome commun pour le déploiement sur Linux consiste à utiliser libbsd comme indiqué dans la documentation OConfigure:
CFLAGS=$(pkg-config --cflags libbsd-overlay)
./configure LDFLAGS=$(pkg-config --libs libbsd-overlay)
make
make install
Il est utile d'exécuter les tests de régression installés sur les sources de bord de saignement. (Encore une fois, cela utilise BSD Make, il peut donc être bmake sur votre système.) Vous aurez besoin de libcurl installé ( Curl-DEV , Libcurl-DEV ou Libcurl4-OpenSSL-DEV avec certains gestionnaires de packages).
make regress Le système contient une suite de régression complète et est également conçue pour fonctionner avec AFL. Pour exécuter certains des tests groupés, utilisez les binaires compilés dans le répertoire afl . (Encore une fois, cela utilise BSD Make, il peut donc être bmake sur votre système.)
make afl
cd afl
afl-fuzz -i in/urlencoded -o out -- ./afl-urlencodedLe référentiel public GitHub pour KCGI utilise des tests automatisés à chaque enregistrement pour exécuter les tests de régression. Ces tests automatisés sont principalement destinés à Linux, dont le mécanisme de sécurité nécessite une maintenance constante. Les systèmes suivants sont vérifiés:
Le développement est principalement sur OpenBSD.
Ceux-ci sont également exécutés chaque semaine pour prendre des modifications à mesure que les nouvelles fonctionnalités du système d'exploitation entrent en jeu.
Toutes les sources utilisent la licence ISC (comme OpenBSD). Voir le fichier licence.md pour plus de détails.