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.

Её сильнейшая отличительная черта — использование песочницы и разделения процессов для обработки пути недоверенного ввода.
  1. juliangoldsmith

    Это немного напоминает мне тот случай, когда я реализовал TodoMVC на C, хотя для этого я использовал fcgi: https://github.com/julian-goldsmith/todomvc-c

  2. Bluestein

    (В этом псевдовозрождении здравого смысла кто-нибудь должен хотя бы мимоходом вспомнить о perl, языке CGI — той самой OG ...)

    Да здравствует TIMTOWTDI! :)

  3. hatefulheart

    Все в этой ветке будут указывать на проблемы написания веб-приложения на C.

    Обратитесь к новейшему подкасту Talk Python, где разработчику ядра CPython сказали, что Python безопасен для памяти, и его ответ был «неужели?».

    В какой-то момент нам нужно стать более искушёнными в этом вопросе: наше аппаратное обеспечение принципиально небезопасно, всё, что мы на нём строим, принципиально небезопасно, и есть степени, в которых что-то лучше или хуже, и это всё. Всё, что имеет значение, — это любовь, строгость и забота, которые вы вкладываете в свою работу.

    Поступайте как хотите: бэкенд на C допустим, бэкенд на LISP допустим.

Ещё за этот день

2026-10-14