Wie protokolliere ich einen get-Request-Parameter nicht in den nginx-Zugriffsprotokollen?

8

Ich brauche Zugriffsprotokolle, die aktiviert sind. Aus Gründen der Kompatibilität können jedoch die Daten eines sensiblen GET-Anforderungsparameters nicht in den Zugriffsprotokollen protokolliert werden. Während ich weiß, konnte ich die Protokolle analysieren (nach der Tat) und sie bereinigen, das ist keine akzeptable Lösung - weil aus Gründen der Compliance Logs nicht manipuliert werden können.

Ссылка

Wie kann ich verhindern, dass der Parameterwert "sensitive_data" in die Protokolle geschrieben wird? Hier waren einige Ideen:

  • POST-Anfrage senden - ist keine Option mit JSONP.
  • Verwenden Sie eine neue Standortregel für "resource" und legen Sie ein Zugriffsprotokoll fest, um ein log_format zu verwenden, das ein anderes Format verwendet (dh nicht $ remote_addr verwendet). Sehen Sie das als Referenz: Ссылка
  • Melden Sie eine $ sanitized_remote_addr und setzen Sie sie (irgendwie parsen Sie die $ remote_addr oder etwas anderes?), bevor sie es in das Protokoll bringt. Wir sind nicht sicher, ob dies leicht zu erreichen ist.

Wie soll das gemacht werden?

    
Domino 09.10.2013, 07:32
quelle

2 Antworten

4

Die vorherige Antwort funktioniert nicht, da log_format modul nur bei http level config.

verwendet werden kann

Zur Behebung dieses Problems können wir die log_format -Konfiguration aus der location -Direktive entfernen und sie in der http-Konfig beibehalten.

%Vor%

log_format Direktive kann Variablen später in unserem location -Direktivenblock definiert haben.

So wird die endgültige Konfiguration aussehen:

%Vor%     
Shashank Agrawal 28.04.2014 06:16
quelle
1

Die Lösung, die ich bisher gefunden habe, ist hier . Kurz gesagt:

%Vor%

Vielleicht hat das früher funktioniert, jetzt heißt es:

%Vor%

oder

%Vor%     
Doncho Gunchev 17.10.2013 15:01
quelle

Tags und Links