Ich habe Probleme mit Restheadern mit Unterstreichung, bekomme nicht die Restheader Wert, während ich sie drucke.Python Flasche Restheader funktioniert nicht mit Unterstrich
Hatte jemand eine Idee, wie ich das schaffen könnte?
Danke!
Ich habe Probleme mit Restheadern mit Unterstreichung, bekomme nicht die Restheader Wert, während ich sie drucke.Python Flasche Restheader funktioniert nicht mit Unterstrich
Hatte jemand eine Idee, wie ich das schaffen könnte?
Danke!
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.
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. –
Welchen WSGI-Server verwenden Sie? Wurde der WSGI-Server kürzlich aktualisiert? –
Apache/2.4.18 (Ubuntu) mod_wsgi/4.3.0 Python/2.7.12 konfiguriert. –
Verwenden Sie keine Unterstriche in Headern. Auch wenn es früher funktioniert hat, solltest du aufhören. –