Apache HTTPd Devs considéré comme nuisible
.
Arrière-plan
Au cours des 25 dernières années, j’ai été le développeur principal de apreq
sous-projet au sein du Serveur Apache HTTPd Projet parent. L’idée originale de libapreq
, en tant que coffre-fort/performant Soumission de formulaire HTML et Biscuit.
C’était ma vision à l’époque de transformer la bibliothèque en une bibliothèque générique, non liée à Perl. C
bibliothèque qui prendrait en charge les liaisons de langage d’autres langages de programmation, c’est pourquoi j’ai poussé pour que le projet soit maison sous le parapluie HTTPd au lieu de Apache-Perl.
Avec l’avènement de HTTPD-2. X
, un tout nouveau Filtre d'E/S
L’architecture a émergé de httpd
ainsi que la séparation complète des APR
du cœur lui-même en tant qu’exécution de portabilité POSIX à usage plus général pour C
projets comme Subversion
. En fait, libapreq2
est plus proche de la Apache APR
projet dans cet esprit, et son API Perl reflète cela dans son APR : : Demande
création. Il dispose d’un mode CGI intégré pour un fonctionnement autonome, en dehors du httpd
Pourtant, la composante clé de apreq2
a toujours été le mod_apreq2
Le module Apache, conçu pour la première fois par Bill Wrowe
au début des années 2000. Ce qu’il a conçu, lors d’une séance de brainstorming avec moi (en personne), était une bibliothèque d’analyseurs unique interne à httpd
J’ai expliqué les objectifs de conception à plusieurs reprises au fil des ans, même en 2012 sur dev@httpd.
Rassemblement de nuages orageux
Bien que cette vision ait connu un franc succès, les liaisons linguistiques sont disponibles pour plusieurs langues telles que Perle
, PHP
, TCL
, RR
, etc., depuis environ 2010, il s’est avéré tragique pour le communauté d’utilisateurs existante comprenant tous, pas seulement les membres de la Perle
Que t’est-il arrivé ? Philip Gollucci, un de mes collègues Perl/FreeBSD à l’époque, a commencé à s’agiter pour que nous promouvions le projet à libérer de l’intérieur du serveur HTTPd lui-même. Quoi Philippe ne savait pas très bien à l’époque à quel point Poissons, vapeurs et territoires Cette équipe était devenue, ce qui aurait signifié avoir à collaborer directement avec eux sur décisions orientées utilisateur.
En 2012, Philip a obtenu ce qu’il voulait et j’ai cessé de résister, alors il a fourche le projet existant et copié le C
Chute
En 2020 environ, l’équipe de sécurité de Google a profité d’une version alpha de httpd 2.5 en brouillant sa copie de 8 ans de apreq2
Au lieu d’avoir la courtoisie de tendre la main à Philippe, Issac Goldstand, Max Kellermann (@MaxKellermann), moi-même (@joesuf4), ou toute autre personne impliquée dans le développement de libapreq2
Mais le coup de grâce a été la sortie en 2022 de 2,17, dans lequel le développeur rookie introduit intentionnellement un bug fatal dans la base de code, rupture Un test de régression de dix-neuf ans.
Postmortem
Si vous demandez comment quelque chose avec un test de régression cassé se termine sur CPAN, vous devrez examiner comment RELENG.
Longue histoire courte, Ils ont commenté le test et l’a expédié de toute façon, et l’a appelé une version de sécurité qui a corrigé une vulnérabilité chaque fois qu’une version antérieure était susceptible de.
.
Pourquoi je m’en soucie maintenant ? Parce que je suis le suceur les utilisateurs contactent pour obtenir des réponses.
Cela craint, mais je suis désolé de vous dire que mes jours de port de la cape Superman à Apache se sont terminés il y a environ une décennie.