Durch Verwendung des Debuggers besteht die Gefahr, dass vertrauliche Daten in der Anwendung wie E-Mail-Adressen, Kontonummern usw. bekannt werden. Sie können Sperrlisten- und Sperrlistenausnahmen konfigurieren, um den Debugger-Agent für den Zugriff auf diese vertraulichen Daten zu blockieren.
Ausgeblendete Daten werden vom Debugger als "vom Administrator blockiert" gemeldet, wie im folgenden Screenshot gezeigt:
Empfehlungen
Beachten Sie beim Konfigurieren oder Aktualisieren der Sperrlistendateien die folgenden Empfehlungen:
Verwenden Sie den Java-Agent in der Version 2.27 oder höher. Informationen zur Installation finden Sie unter Cloud Debugger für Java einrichten.
Beachten Sie, dass die Benennung und die Keywords der Konfigurationsdatei auf
blocklist
aktualisiert wurden. Aktualisieren Sie Ihre Dateien entsprechend.
Datei konfigurieren
Die folgende Konfiguration kann als Ausgangspunkt verwendet werden und bietet eine Inline-Dokumentation:
# Cloud Debugger Blocklist Configuration File
#
# == Format ==
#
# This configuration file accepts the following keywords:
#
# - blocklist
# - blocklist_exception
#
# The debugger uses the following rules to determine if a variable's data
# should be hidden, using the variable's type as the match criteria.
#
# | Matches `blocklist` | Matches `blocklist_exception` | Data is |
# |---------------------|-------------------------------|---------|
# | no | no | shown |
# | no | yes | shown |
# | yes | no | hidden |
# | yes | yes | shown |
#
# Patterns listed under "blocklist" and "blocklist_exception" have the
# following format:
#
# [!]<type>
#
# - `type` is a type prefix (such as a class or package name). Any
# nested types will also match the pattern. For example, if you
# specify a package name, the package and all of it's subtypes will
# match. Note that glob patterns such as `*` can be used anywhere in
# the type name.
# - By prefixing a pattern with an exclamation point, `!`, the pattern
# is considered an "inverse match" which evaluates to true for any
# type that does not match the provided pattern.
# - The debugger makes no attempt to verify that specified patterns
# will actually match anything. If you have a misspelling in your
# pattern, then there will be no reported errors but the pattern will
# not work as intended.
#
# == Verification ==
#
# A verification tool is available and can be downloaded with the
# following command:
#
# wget https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/debugger_blocklist_checker.py
#
# This tool can be used to check the configuration file for syntax errors.
# It can also be used to experiment with configuration files locally
# without having to deploy a real application.
#
# A basic usage example:
#
# debugger_blocklist_checker.py debugger-blocklist.yaml
#
# You can also use the tool to check if symbols will be blocklisted
#
# echo com.java.Integer | \
# debugger_blocklist_checker.py debugger-blocklist.yaml --check
# Uncomment The line below to add blocklists
#blocklist:
# - "java.security" # Example package
# Uncomment The line below to add blocklist exceptions
#blocklist_exception:
# - "java.security.Timestamp" # Example class
Beispiele
Durch die folgende Beispielkonfiguration werden Daten innerhalb einer einzelnen Klasse für den Debugger ausgeblendet:
blocklist:
- "com.sales.Ticket"
Auch Pakete können durch Angabe des Paketnamens ausgeblendet werden:
blocklist:
- "com.sales"
In einigen Fällen kann es nützlich sein, Ausnahmen von blocklist
-Regeln zu erstellen.
Dies kann mit einer blocklist_exception
erfolgen:
blocklist:
- "com.sales"
blocklist_exception:
- "com.sales.testing"
Darüber hinaus ist es möglich, ein inverses Muster anzugeben, bei dem Klassen, die keinem Muster entsprechen, auf die Sperrliste gesetzt werden.
blocklist:
- "!com.sales"
Speicherort der Konfigurationsdatei
Die Konfigurationsdatei muss debugger-blocklist.yaml
heißen und kann an einer beliebigen Stelle im Klassenpfad abgelegt werden. Das Stammverzeichnis der .jar
-Datei eignet sich gut dafür. In den folgenden Abschnitten wird erläutert, wie dabei vorgegangen wird.
Den Befehl jar
ausführen
Um eine Konfigurationsdatei in eine .jar
-Datei einzufügen oder zu aktualisieren, kann der jar
-Befehl verwendet werden. Mit folgendem Befehl fügen Sie die Konfigurationsdatei debugger-blocklist.yaml
dem Archiv TicketTracker.jar
hinzu:
jar uvf TicketTracker.jar debugger-blocklist.yaml
Ant nutzen
Verwenden Sie die integrierte jar
-Aufgabe von Ant, um die Konfigurationsdatei mithilfe des Ant-Build-Systems in eine JAR-Datei einzufügen. Das folgende distribute
-Ziel verwendet beispielsweise die jar
-Aufgabe, um die Konfigurationsdatei debugger-blocklist.yaml
dem Archiv TicketTracker.jar
hinzuzufügen.
<target name="distribute" depends="compile">
<jar destfile="${distributionDir}/TicketTracker.jar" >
<fileset dir="${outputDir}"/>
<fileset dir="${sourceDir}"/>
<fileset file="debugger-blocklist.yaml" />
</jar>
</target>
Maven nutzen
Um die Konfigurationsdatei in ein vom Maven-Build-System verwaltetes Paket einzufügen, legen Sie die Datei debugger-blocklist.yaml
im Verzeichnis src/main/resources
ab, das Sie möglicherweise zuerst erstellen müssen. Erstellen Sie das Projekt und prüfen Sie, ob debugger-blocklist.yaml
nach target/classes
kopiert wurde.