2017-02-20 3 views
2

残りのヘッダはアンダースコアで表示され、残りのヘッダ値は表示されません。Pythonボトルレストヘッダはアンダースコアでは機能しません

誰かが私がこの仕事をどうやってできるか考えていましたか?

ありがとうございます!

+0

ヘッダーにアンダースコアを使用しないでください。たとえそれが働いていたとしても、あなたは止めるべきです。 –

答えて

0

ヘッダー名にアンダースコアを使用しないでください。区切り記号としてハイフンのみを使用してください。

ApacheやnginxなどのメインストリームWebサーバーと、いくつかのPython WSGIサーバー/フレームワークは、ヘッダーのなりすましを避けるために下線付きのヘッダーを破棄します。

あなたは、ヘッダーを持っている想像:CGI/WSGIで

My-Header: value 

これは、変数に変換されます:

HTTP_MY_HEADER: value 

アプリケーションに渡されたとき。

My_Header: value 

も同様にマッピング:

問題は、ヘッダーがあることです。

ここで危険なのは、クライアントが1つを使用する可能性があり、プロキシなどの間で意図的に別のサーバーを試行して優先させて、サーバー/アプリケーションが処理するときに元のものを上書きできるということです。

これは潜在的なセキュリティ上の問題であるため、サーバーでは英数字とダッシュを含むヘッダーのみを通過させることができ、他のものは破棄されます。

+0

こんにちはグレアム、 しかし、それは数ヶ月以来働いています、突然これは私が今変更することはできませんので、この変更もクライアント側に適用されるため停止します。 –

+0

あなたはどのWSGIサーバーを使用していますか? WSGIサーバーが最近アップグレードされましたか? –

+0

Apache/2.4.18(Ubuntu)mod_wsgi/4.3.0 Python/2.7.12が設定されています。 –

関連する問題