Dopo l'aggiornamento a php 5.5.1 e apache 2.4.6, il controllo di determinate intestazioni è ora interrotto (in particolare, verifica di HTTP_X_REQUESTED_WITH
).Nome intestazione con caratteri di sottolineatura ignorati in php 5.5.1/apache 2.4.6
Attraverso ulteriori test ho notato che qualsiasi intestazione personalizzata che contiene un carattere di sottolineatura viene ignorata (con questo intendo che non viene visualizzata nell'array di PHP $_SERVER
). Quindi, se aggiungo un'intestazione denominata my-header
, diventa disponibile come $_SERVER['HTTP_MY_HEADER']
, ma se provo ad aggiungere un'intestazione my_header
, non è disponibile in $_SERVER
.
Dal momento che si sta utilizzando Apache, si ottiene l'intestazioni corrette quando si utilizza [ 'apache_request_headers'] (http://uk3.php.net/manual/en/function.apache-request-headers.php) – naththedeveloper
@FDL sì, ottengo intestazioni corrette con apache_request_headers –
Avrei dovuto fare la ricerca prima di postare ... Questa è una funzionalità documentata in apache 2.4: "La traduzione delle intestazioni alle variabili di ambiente è più severa di prima per mitigare alcune possibili attacchi di scripting del sito tramite header header. Le intestazioni contenenti caratteri non validi (inclusi i caratteri di sottolineatura) vengono ora eliminati automaticamente. " - https://httpd.apache.org/docs/trunk/new_features_2_4.html –