kcgi: минималистичная CGI/FastCGI-библиотека для C/C++ с песочницей для недоверенного ввода
Kcgi – minimal CGI and FastCGI library for C/C++
kcgi — открытая библиотека CGI и FastCGI для веб-приложений на C/C++. Она минималистична, безопасна и поддаётся аудиту. Поддерживает автосжатие, обработку всех HTTP-входных данных (query strings, cookies, тела страниц, multipart) с валидацией, аутентификацию, кэширование вывода, отладку запросов и форматированные писатели (JSON, XML и т.д.). Ключевое отличие — изоляция разбора и валидации недоверенных сетевых данных в песочнице дочернего процесса, что предотвращает эксплуатацию уязвимостей. Доступна версия 1.0.1 от 17 ноября 2025 года, исправляющая именование разделяемых библиотек в Mac OS X.
Её сильнейшая отличительная черта — использование песочницы и разделения процессов для обработки пути недоверенного ввода.
- juliangoldsmith
Это немного напоминает мне тот случай, когда я реализовал TodoMVC на C, хотя для этого я использовал fcgi: https://github.com/julian-goldsmith/todomvc-c
- Bluestein
(В этом псевдовозрождении здравого смысла кто-нибудь должен хотя бы мимоходом вспомнить о perl, языке CGI — той самой OG ...)
Да здравствует TIMTOWTDI! :)
- hatefulheart
Все в этой ветке будут указывать на проблемы написания веб-приложения на C.
Обратитесь к новейшему подкасту Talk Python, где разработчику ядра CPython сказали, что Python безопасен для памяти, и его ответ был «неужели?».
В какой-то момент нам нужно стать более искушёнными в этом вопросе: наше аппаратное обеспечение принципиально небезопасно, всё, что мы на нём строим, принципиально небезопасно, и есть степени, в которых что-то лучше или хуже, и это всё. Всё, что имеет значение, — это любовь, строгость и забота, которые вы вкладываете в свою работу.
Поступайте как хотите: бэкенд на C допустим, бэкенд на LISP допустим.