2017-02-20 6 views

Antwort

0

Sie sollten Unterstriche nicht in Kopfzeilennamen verwenden, sondern nur Bindestriche als Trennzeichen verwenden.

Mainstream-Webserver wie Apache und nginx sowie einige Python WSGI-Server/Frameworks werfen Header mit Unterstrichen weg, um Header-Spoofing zu vermeiden.

Stellen Sie sich vor Sie haben einen Header:

My-Header: value 

Das in CGI/WSGI zu Variable konvertiert wird:

HTTP_MY_HEADER: value 

bei der Anwendung übergeben.

Das Problem ist, dass ein Header:

My_Header: value 

Karten auch auf das gleiche.

Die Gefahr hier ist, dass ein Client einen verwenden könnte, und etwas dazwischen wie ein Proxy könnte absichtlich den anderen setzen, um Vorrang zu versuchen und das Original zu überschreiben, wenn der Server/die Anwendung es verarbeitet.

Da dies ein potenzielles Sicherheitsproblem darstellt, lassen Server nur Header mit alphanumerischen Zeichen und Bindestrichen zu, die jetzt durchgehen, und alles andere wird verworfen.

+0

Hallo Graham, Aber es funktioniert seit einigen Monaten, plötzlich hört es auf zu arbeiten, ich kann es nicht ändern, denn diese Änderung wird auch auf der Client-Seite angewendet. –

+0

Welchen WSGI-Server verwenden Sie? Wurde der WSGI-Server kürzlich aktualisiert? –

+0

Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/2.7.12 konfiguriert. –

Verwandte Themen