Unusual but valid headers in requests are not available to PHP when running via CGI
Ouverte
Personne n'a encore pris cette issue.
Bug
SAPI: cgi
Status: Needs Triage
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.2k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
The following code:
<?php
print_r($_SERVER);
Requested with:
curl -s -H 'X-Test: 1' -H 'X-%%Test%%: 1' 'http://127.0.0.1/' | grep 'HTTP_'
Resulted in this output:
[HTTP_X_TEST] => 1
[HTTP_ACCEPT] => */*
[HTTP_USER_AGENT] => curl/7.83.1
[HTTP_HOST] => 127.0.0.1
But I expected this output instead:
[HTTP_X_TEST] => 1
[HTTP_X_%%TEST%%] => 1
[HTTP_ACCEPT] => */*
[HTTP_USER_AGENT] => curl/7.83.1
[HTTP_HOST] => 127.0.0.1
This appears to be unique to CGI, or alternatively mod_php is immune.
PHP Version
PHP 8.1.26
Operating System
Alpine Linux 3.18
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez la requête avec PHP 8.1.26 sur Alpine Linux 3.18 via CGI et examinez comment CGI renseigne $SERVER, en comparant le résultat avec mod_php. La tâche est terminée lorsque l’en-tête inhabituel X-%%Test%% est disponible sous la forme HTTP_X%%TEST%% et que les en-têtes existants restent disponibles.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- backend
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100