7.5.1. Elaborazione di nomi di campo HTTP non validi come nomi di componenti derivati (Processing Invalid HTTP Field Names as Derived Component Names)
7.5.1. Elaborazione di nomi di campo HTTP non validi come nomi di componenti derivati (Processing Invalid HTTP Field Names as Derived Component Names)
La definizione dei nomi dei campi HTTP non consente l'uso del carattere @ in alcun punto del nome. Pertanto, poiché tutti i nomi dei componenti derivati iniziano con il carattere @, questi spazi dei nomi dovrebbero essere completamente separati. Tuttavia, alcune implementazioni HTTP non sono sufficientemente rigorose sui caratteri accettati nei nomi dei campi HTTP. In tali implementazioni, un mittente (o attaccante) potrebbe iniettare un campo di intestazione che inizia con @ e farlo passare al codice dell'applicazione. Questi campi di intestazione non validi potrebbero essere usati per sovrascrivere una porzione del contenuto del messaggio derivato e sostituire un valore arbitrario, offrendo un potenziale punto per un attaccante per montare un attacco di collisione della firma (Sezione 7.3.1) o altri attacchi di sostituzione funzionale (come usare la firma di una richiesta GET su una richiesta POST artificiosa).
Per contrastare ciò, quando si selezionano valori per un componente del messaggio, se il nome del componente inizia con il carattere @, deve essere elaborato come componente derivato e non deve mai essere elaborato come campo HTTP. Solo se il nome del componente non inizia con @ può essere preso dai campi del messaggio. L'algoritmo discusso nella Sezione 2.5 fornisce un ordine sicuro delle operazioni.