NGINXでのPOSTデータのロギングと不要なパラメータの回避

私はNGINXでPOSTデータをログに記録し、同じように$ request_bodyを使用しています。

しかし、ログに記録したくないPOSTフィールド(パスワード、電子メールなど)があります。投稿データを解析することは可能ですか、PHP/RUBYや他のスクリプトに非同期にデータを送信して、そこでPOSTデータを解析することはできますか?

1

2 答え

デフォルトのモジュールでポストパラメータに直接アクセスすることはできませんが、これを達成するために少しハックを試みることができます。これはその例です:

location /forPost { 
    try_files /logger.php $uri;
}

スクリプトは常に404ステータスを返します。これは例です:

<?php
   if (isset($_POST['data']) ) {
       logger($_POST['data']);
   }
   header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
   header("Status: 404 Not Found")
   die();
?>
1
追加された

私はこれを Nginx LUAモジュールを使って実現しました。そしてluaスクリプトの ngx.req.get_post_args()を呼び出すことで、テーブルの形(LUAの配列)で投稿コンテンツを取得することができました。したがって、不要なパラメータを削除し、それをログに記録することでこの問題を解決しました。

1
追加された