L'uso del debugger potrebbe esporre dati sensibili all'interno dell'applicazione, come indirizzi email, numeri di account e così via. Puoi configurare liste bloccate ed eccezioni alle liste bloccate per impedire all'agente di debug di accedere a questi dati sensibili.
I dati nascosti vengono segnalati dal debugger come "bloccati dall'amministratore", come mostrato nel seguente screenshot:
Suggerimenti
Quando configuri o aggiorni i file della lista bloccata, presta attenzione ai seguenti suggerimenti:
Utilizza l'agente Java versione 2.27 o successiva. Per informazioni sull'installazione, consulta la pagina relativa alla configurazione di Cloud Debugger per Java.
Tieni presente che la denominazione dei file di configurazione e le parole chiave sono state aggiornate in
blocklist
. Aggiornare i file di conseguenza.
Configura il tuo file
La seguente configurazione può essere utilizzata come punto di partenza e fornisce la documentazione incorporata:
# 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
Esempi
La seguente configurazione di esempio nasconde i dati all'interno di una singola classe dal debugger:
blocklist:
- "com.sales.Ticket"
Puoi anche nascondere i pacchetti specificandone il nome:
blocklist:
- "com.sales"
In alcuni casi può essere utile creare delle eccezioni alle regole di blocklist
.
Puoi farlo con un blocklist_exception
:
blocklist:
- "com.sales"
blocklist_exception:
- "com.sales.testing"
Infine, è possibile specificare un pattern inverso in cui le classi che non corrispondono a un pattern vengono inserite nella lista bloccata.
blocklist:
- "!com.sales"
Posizione file di configurazione
Il file di configurazione deve essere denominato debugger-blocklist.yaml
e può essere inserito in qualsiasi punto del percorso della classe. Una posizione ragionevole si trova nella directory principale del file .jar
. Le sezioni seguenti illustrano come eseguire questa operazione.
Utilizzare il comando jar
Per inserire o aggiornare un file di configurazione in un file .jar
, puoi utilizzare il comando jar
. Per aggiungere il file di configurazione debugger-blocklist.yaml
all'archivio TicketTracker.jar
, utilizza il comando seguente:
jar uvf TicketTracker.jar debugger-blocklist.yaml
Usa la formica
Per inserire il file di configurazione in una JAR utilizzando il sistema di compilazione Ant, utilizza l'attività integrata jar
di Ant. Ad esempio, il seguente target distribute
utilizza l'attività jar
per aggiungere il file di configurazione debugger-blocklist.yaml
all'archivio TicketTracker.jar
.
<target name="distribute" depends="compile">
<jar destfile="${distributionDir}/TicketTracker.jar" >
<fileset dir="${outputDir}"/>
<fileset dir="${sourceDir}"/>
<fileset file="debugger-blocklist.yaml" />
</jar>
</target>
Utilizza Maven
Per inserire il file di configurazione in un pacchetto gestito dal sistema di compilazione Maven, posiziona il file debugger-blocklist.yaml
nella directory src/main/resources
, che potresti dover creare. Crea il progetto e conferma che debugger-blocklist.yaml
sia stato copiato in target/classes
.