Vertrauliche Daten ausblenden

Durch Verwendung des Debuggers besteht die Gefahr, dass vertrauliche Daten in der Anwendung wie E-Mail-Adressen, Kontonummern usw. bekannt werden. Diese vertraulichen Daten können vom Debugger-Agent mit einer einfachen Konfigurationsdatei blockiert werden.

Beispiele

Durch die folgende Beispielkonfiguration werden Daten innerhalb einer einzelnen Klasse für den Debugger ausgeblendet:

blacklist:
- "com.sales.Ticket"

Auch Pakete können durch Angabe des Paketnamens ausgeblendet werden:

blacklist:
- "com.sales"

In einigen Fällen kann es nützlich sein, Ausnahmen von blacklist-Regeln zu erstellen. Dies kann mit einer blacklist_exception erfolgen:

blacklist:
- "com.sales"
blacklist_exception:
- "com.sales.testing"

Darüber hinaus ist es möglich, ein inverses Muster anzugeben, bei dem Klassen, die keinem Muster entsprechen, auf die schwarze Liste gesetzt werden.

blacklist:
- "!com.sales"

Ausgeblendete Daten werden vom Debugger als "vom Administrator blockiert" gemeldet, wie im folgenden Screenshot gezeigt:

Debugger meldet versteckten Text als "vom Administrator blockiert"

Konfigurationsdatei

Die folgende Konfiguration kann als Ausgangspunkt verwendet werden und bietet eine Inline-Dokumentation:

# Stackdriver Debugger Blacklist Configuration File
#
# == Format ==
#
#   This configuration file accepts the following keywords:
#
#    - blacklist
#    - blacklist_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 `blacklist` | Matches `blacklist_exception` | Data is |
#   |---------------------|-------------------------------|---------|
#   | no                  | no                            | shown   |
#   | no                  | yes                           | shown   |
#   | yes                 | no                            | hidden  |
#   | yes                 | yes                           | shown   |
#
#   Patterns listed under "blacklist" and "blacklist_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_blacklist_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_blacklist_checker.py debugger-blacklist.yaml
#
#   You can also use the tool to check if symbols will be blacklisted
#
#     echo com.java.Integer | \
#       debugger_blacklist_checker.py debugger-blacklist.yaml --check

# Uncomment The line below to add blacklists
#blacklist:
#  - "java.security"  # Example package

# Uncomment The line below to add blacklist exceptions
#blacklist_exception:
#  - "java.security.Timestamp"  # Example class

Konfigurationsdatei ablegen

Die Konfigurationsdatei muss debugger-blacklist.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.

jar-Befehl verwenden

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-blacklist.yaml dem Archiv TicketTracker.jar hinzu:

jar uvf TicketTracker.jar debugger-blacklist.yaml

Ant verwenden

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-blacklist.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-blacklist.yaml" />
  </jar>
</target>

Maven verwenden

Um die Konfigurationsdatei in ein vom Maven-Build-System verwaltetes Paket einzufügen, legen Sie die Datei debugger-blacklist.yaml im Verzeichnis src/main/resources ab, das Sie möglicherweise zuerst erstellen müssen. Erstellen Sie das Projekt und überprüfen Sie, ob debugger-blacklist.yaml nach target/classes kopiert wurde.

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Stackdriver Debugger-Dokumentation