2017-04-04 37 views
0

NGINXを使用してクエリパラメータを制限する簡単な方法はありますか? これは、(アプリケーションによって使用される)許可されたクエリパラメータのセットがあることを意味し、他のクエリパラメータは削除する必要があります。基本的に許可されたパラメータのホワイトリストNGINXクエリパラメータを制限する

  • 私はユーザーをリダイレクトせずにこれを行うようにしています。
  • クエリ文字列にパラメータが表示される特定の順序はありません。
  • リクエストに許可されているパラメータと許可されていないパラメータが両方とも含まれている場合は、許容されるパラメータは です。例えば

:私は、パラメータがA、B、C、次いで許可する場合:

  • クエリ文字列A = X & B = Y & C = Zは完全に大丈夫です。
  • クエリ文字列は、A = X & K = J & C = Z & B?であるYは、それがA = X & C = Z & Bであることを書き換えることになる= = Y( "K" パラメータは、削除されました「K」は何でも)
  • クエリ文字列だろうか?K = jは完全に

削除され、私が見つけた答えのほとんどは、特定のクエリパラメータを削除するか、全体のクエリ文字列を削除議論します。あなたのホワイトリストが比較的短い場合

答えて

0

、あなたは次のようにゼロからURIを得られる構築することができます。この場合

location ~ ^/(.*)$ { 
    proxy_pass http://backend/$1?A=$arg_a&B=$arg_b&C=$arg_c; 
} 

は、いくつかのパラメータは、元の要求に存在していない場合は空である可能性があります。 また、Lua、njs、またはperlモジュールを使用することもできます。

関連する問題