Parameter-Filterung
Die grundlegende Parameter-Filterung in den AppSignal-Integrationen funktioniert mit einer Denylist, einer Liste von Schlüsseln, die herausgefiltert und nicht gesendet werden sollen. Sie können in der AppSignal-Konfiguration eine Option “Parameter filtern” mit einer Liste der zu filternden Parameter-Schlüssel setzen. Werte von Parametern, die Sie zum Herausfiltern konfiguriert haben, werden durch einen[FILTERED]-Wert ersetzt. Auf diese Weise enthält die Liste der Parameter in den App-Daten auf AppSignal.com weiterhin den Parameter-Schlüssel, aber nicht den Wert, sodass Sie immer noch die Sichtbarkeit haben, dass ein Wert mit potenziell sensiblen Daten gefiltert wurde, bevor er an AppSignal gesendet wurde.
Beispiel
Zum Beispiel führt eine Anwendung mit dieser AppSignal-Konfiguration:Ruby
Das AppSignal-for-Ruby-Gem hat zwei Methoden zur Parameter-Filterung:- Wenn Ihre App Rails verwendet, können Sie die Rails-Konfiguration direkt verwenden.
- Wenn Ihre App ein anderes Framework wie Sinatra oder Padrino verwendet, können Sie stattdessen die eingebaute Filterung von AppSignal verwenden.
AppSignal-Parameter-Filterung
Verwenden Sie die Denylist für die grundlegende Parameter-Filterung. Diese Parameter-Filterung wird auf alle Query-Parameter in einer HTTP-Anfrage und alle Argumente für Background-Jobs angewendet. Diese Filterung unterstützt schlüsselbasierte Filterung für Hashes, deren Werte durch[FILTERED] ersetzt werden. Es gibt Unterstützung für verschachtelte Hashes und verschachtelte Hashes in Arrays. Jeder Hash, dem wir in Ihren Parametern begegnen, wird gefiltert.
Um diese Filterung zu verwenden, fügen Sie Folgendes zu Ihrer config/appsignal.yml-Datei in der Umgebungsgruppe hinzu, in der sie gelten soll. Der filter_parameters-Wert ist ein Array von Strings.
Rails-Parameter-Filterung
Glücklicherweise bietet Rails einen Mechanismus zur Filterung von Request-Parametern, um Daten aus Log-Dateien zu entfernen. AppSignal nutzt diesen Mechanismus zur Request-Parameter-Filterung, sodass sowohl Ihre Request-Logs als auch die an AppSignal gesendeten Request-Daten durch eine Konfiguration gefiltert werden. Angenommen, die Anwendung sollte dieselben Schlüssel für Request-Parameter und Job-Argumente filtern, die für verschiedene Ruby-Gems wie Sidekiq-Job-Argumente gemeldet werden. In diesem Fall ist es notwendig, die Parameter-Filterung in AppSignal mit derfilter_parameters-Option zu konfigurieren, um auch die in der Rails-Konfiguration gesetzten Schlüssel einzubeziehen, da die Rails-Parameter-Filterungs-Konfiguration für diese Gems nicht wiederverwendet wird.
Denylist: Bestimmte Schlüssel filtern
Es gibt zwei Möglichkeiten zu bestimmen, welche Schlüssel gefiltert werden. Die erste besteht darin, bestimmte Schlüssel zur Denylist hinzuzufügen. Im folgenden Beispiel wird der Wert von:secret in jedem Post in der App durch [FILTERED] ersetzt.
accepts_nested_attributes_for. Wenn wir vergessen, Schlüssel explizit hinzuzufügen, werden sie nicht gefiltert.
Allowlist: Bestimmte Schlüssel zulassen
Die Verwendung einer Lambda anstelle einer Liste von Schlüsseln bietet mehr Flexibilität. Im folgenden Beispiel verwenden wir eine Lambda, um eine Allowlist anstelle einer Denylist einzurichten.Elixir
Wenn Ihre App Phoenix verwendet, können Sie die Phoenix-Parameter-Filterung verwenden. Sie können die eingebaute Filterung von AppSignal verwenden, wenn Ihre App ein anderes Elixir-Framework verwendet.AppSignal-Parameter-Filterung
Verwenden Sie die Denylist für die grundlegende Parameter-Filterung. Diese Parameter-Filterung wird auf alle Query-Parameter in einer HTTP-Anfrage angewendet. Richten Sie die Parameter-Filterung mit derfilter_parameters-Konfigurationsoption ein. Der filter_parameters-Wert ist eine Liste von Strings.
Phoenix-Konfiguration filter_parameters
Verwenden Sie die Parameter-Filterung von Phoenix, um Ihre Konfiguration zentral zu halten, die verwendet wird, um sensible Informationen aus den Logs herauszuhalten. AppSignal folgt diesen Filterregeln.filter_parameters nicht gesetzt ist, verwendet Phoenix standardmäßig ["password"] als Konfiguration. Dies bedeutet, dass eine Phoenix-App ohne Konfiguration keine Passwörter an AppSignal sendet.
Node.js
Verwenden Sie diefilterParameters-Denylist für die grundlegende Parameter-Filterung. Diese Filterung wird auf alle Parameter einer HTTP-Anfrage angewendet.
Sie können die Parameter-Filterung mit der filterParameters-Konfigurationsoption einrichten. Der filterParameters-Wert ist ein Array von Strings.
Python
Verwenden Sie diefilter_parameters-Denylist für die grundlegende Parameter-Filterung. Diese Filterung wird auf alle Parameter einer HTTP-Anfrage angewendet.
Sie können die Parameter-Filterung mit der filter_parameters-Konfigurationsoption einrichten. Der filter_parameters-Wert ist ein Array von Strings.
Go
Für Go melden wir die Request-Parameter als Query-Parameter (?query=text) und Payload-Daten (POST-Request-Payload).
Verwenden Sie die filter_request_query_parameters-Denylist für die Filterung von Request-Query-Parametern. Setzen Sie die send_request_query_parameters-Option auf false, um überhaupt keine Request-Query-Parameter zu senden.
Verwenden Sie die filter_request_payload-Denylist für die Filterung von Request-Payload-Daten. Setzen Sie die send_request_payload-Option auf false, um überhaupt keine Request-Payload-Daten zu senden.
Weitere Informationen zur Konfiguration von OpenTelemetry für Go-Apps finden Sie auf der Go-Konfigurationsseite.
Java
Für Java melden wir die Request-Parameter als Query-Parameter (?query=text) und Payload-Daten (POST-Request-Payload).
Verwenden Sie die filter_request_query_parameters-Denylist für die Filterung von Request-Query-Parametern. Setzen Sie die send_request_query_parameters-Option auf false, um überhaupt keine Request-Query-Parameter zu senden.
Verwenden Sie die filter_request_payload-Denylist für die Filterung von Request-Payload-Daten. Setzen Sie die send_request_payload-Option auf false, um überhaupt keine Request-Payload-Daten zu senden.
Weitere Informationen zur Konfiguration von OpenTelemetry für Java-Apps finden Sie auf der Java-Konfigurationsseite.
PHP
Für PHP melden wir die Request-Parameter als Query-Parameter (?query=text) und Payload-Daten (POST-Request-Payload).
Verwenden Sie die filter_request_query_parameters-Denylist für die Filterung von Request-Query-Parametern. Setzen Sie die send_request_query_parameters-Option auf false, um überhaupt keine Request-Query-Parameter zu senden.
Verwenden Sie die filter_request_payload-Denylist für die Filterung von Request-Payload-Daten. Setzen Sie die send_request_payload-Option auf false, um überhaupt keine Request-Payload-Daten zu senden.
Weitere Informationen zur Konfiguration von AppSignal für PHP finden Sie auf der PHP-Konfigurationsseite.