Log Obfuscation
Este interceptor es utilizado para ocultar los datos seleccionados (presentes en el header o cuerpo de la petición o respuesta) de logs del Trace.
Para crear registros de logs de Trace (a los que se accede haciendo clic en el icono ), es necesario usar el interceptor Log. Si desea que los datos estén cifrados en lugar de ofuscados, esto se puede configurar en el mismo interceptor Log. |
Configuración del interceptor
Para configurar el interceptor Log Ofuscation, es necesario informar la ubicación (Location — body o header) de la información que se ocultará. Si la información que desea omitir se encuentra en el cuerpo (body) de la petición, defina una expresión regular para que la información sea identificada (Custom regex). Si está en (header), ingrese el atributo (Attribute), usando letras minúsculas. Finalmente, defina los símbolos en los quales se transformará la información (en el campo Replace to).
Es posible ofuscar múltiples informaciones con un único interceptor Log Obfuscation utilizando una expresión regular apropiada (como se explica aquí). Esto es válido para informaciones ubicadas en el body de la requisición. |
Ejemplos de ofuscación de una sola pieza de información
Imagine que el cuerpo de una petición contiene la siguiente información:
{
"name": "Jonathan Crane",
"alias": "Scarecrow",
"baseOfOperations": [
"Gotham City",
"Arkham Asylum"
],
"status": {
"alignment": "bad",
"citizenship": "american",
"maritalStatus": "single",
"occupation": [
"anarchist",
"serial killer",
"former psychiatrist",
"university professor"
],
"active": true
},
"characteristics": {
"gender": "male",
"height": 1.83,
"weight": 64,
"eyes": "blue",
"hair": "brown"
}
}
Para ofuscar un campo, tiene que crear una expresión regular adecuada.
Por ejemplo, si queremos que el campo "name"
se oscurezca, podemos añadir los ajustes:
Como resultado, Trace mostrará el siguiente Log para esta petición:
{
"name": **********,
"alias": "Scarecrow",
"baseOfOperations": [
"Gotham City",
"Arkham Asylum"
],
"status": {
"alignment": "bad",
"citizenship": "american",
"maritalStatus": "single",
"occupation": [
"anarchist",
"serial killer",
"former psychiatrist",
"university professor"
],
"active": true
},
"characteristics": {
"gender": "male",
"height": 1.83,
"weight": 64,
"eyes": "blue",
"hair": "brown"
}
}
Para ofuscar el campo "occupation"
, podemos añadir los ajustes:
Como resultado, Trace mostrará el siguiente Log para esta petición:
{
"name": "Jonathan Crane",
"alias": "Scarecrow",
"baseOfOperations": [
"Gotham City",
"Arkham Asylum"
],
"status": {
"alignment": "bad",
"citizenship": "american",
"maritalStatus": "single",
"occupation": ##########,
"active": true
},
"characteristics": {
"gender": "male",
"height": 1.83,
"weight": 64,
"eyes": "blue",
"hair": "brown"
}
}
Finalmente, para ofuscar el campo "occupation"
, una manera es añadir los ajustes:
Como resultado, Trace mostrará el siguiente log para esta petición:
{
"name": "Jonathan Crane",
"alias": "Scarecrow",
"baseOfOperations": [
"Gotham City",
"Arkham Asylum"
],
"status": {
"alignment": "bad",
"citizenship": "american",
"maritalStatus": "single",
"occupation": [
"anarchist",
"serial killer",
"former psychiatrist",
"university professor"
],
"active": true
},
"characteristics": {****}
}
Si combinamos los tres interceptores secuencialmente, Trace mostrará el siguiente log para esta petición:
{
"name": **********,
"alias": "Scarecrow",
"baseOfOperations": [
"Gotham City",
"Arkham Asylum"
],
"status": {
"alignment": "bad",
"citizenship": "american",
"maritalStatus": "single",
"occupation": ##########,
"active": true
},
"characteristics": {****}
}
Sin embargo, una mejor manera de ofuscar múltiples campos es usar una única expresión regular más amplia (ver ejemplos abajo).
Ejemplo de ofuscación de información del header
Para ocultar la información contenida en el header de la petición, seleccione la ubicación e informe el atributo.
El atributo debe escribirse en minúsculas. |
Los atributos ingresados en mayúsculas o que comiencen con mayúscula no se ocultarán y, por lo tanto, aparecerán en el Trace.
Configuración de ejemplo para ocultar el atributo authorization:
Como resultado, Trace mostrará el siguiente log para esta petición:
host: api-testing.sensedia.com authorization: ********** user-agent: PostmanRuntime/7.28.4 accept: */* postman-token: 1234a-bcd5-67abc-defg789xyz accept-encoding: gzip, deflate, br x-forwarded-for: 123.45.678.900 x-forwarded-proto: https x-envoy-external-address: 123.45.678.900 x-request-id: abcdefg-456f-789g-00gh-hijk10 content-length: 0
Configure un interceptor de Log Obfuscation de registros para cada atributo que desee ocultar. Para los atributos header, no hay forma de establecer información múltiple en el mismo interceptor.
A continuación, se explica cómo ocultar información múltiple del body de la petición.
Expresión regular para información múltiple
Cuando el conjunto de datos es parte de un JSON, la expresión regular para información múltiple sigue la estructura:
(?<=(<claves>):)\s*(<regex_tipos>)
La «\s*» de la expresión regular se utiliza para ignorar cualquier espacio en blanco entre la clave y el valor. |
Tanto las claves (información) como la regex de cada tipo de valor deben estar separadas por «|».
Las regex para los tipos de valores correspondientes son:
-
números, booleanos y null:
[\+\-\w.]+
-
strings:
"[^"]*"
-
arrays simples:
\[[^\]]*\]
-
objetos simples:
\{[^\}]*\}
Ejemplos de ofuscación de información múltiple
Ahora, imagine que el cuerpo de una petición contiene la siguiente información:
{
"name": "Pamela Lillian Isley",
"alias": "Poison Ivy",
"baseOfOperations": "Gotham City",
"status": {
"alignment": "neutral",
"citizenship": "american",
"maritalStatus": "single",
"occupation": [
"scientist",
"eco-terrorist"
],
"active": true
},
"characteristics": {
"gender": "female",
"height": 1.68,
"weight": 50,
"eyes": "green",
"hair": "red"
}
}
Para ofuscar simultáneamente los campos "name"
, "occupation"
y "characteristics"
, por ejemplo, podemos añadir los ajustes:
Como resultado, Trace mostrará el siguiente log para esta petición:
{
"name":*****,
"alias": "Poison Ivy",
"baseOfOperations": "Gotham City",
"status": {
"alignment": "neutral",
"citizenship": "american",
"maritalStatus": "single",
"occupation":*****,
"active": true
},
"characteristics":*****
}
Por otro lado, para ocultar simultáneamente los campos "name"
, "citizenship"
, "maritalStatus"
, "active"
, "height"
y "weight"
, es suficiente cambiar la regex anterior por:
(?<=("name"|"citizenship"|"maritalStatus"|"active"|"height"|"weight"):)\s*("[^"]*"|[\+\-\w.]+)
Como resultado, Trace mostrará el siguiente log para esta petición:
{
"name":*****,
"alias": "Poison Ivy",
"baseOfOperations": "Gotham City",
"status": {
"alignment": "neutral",
"citizenship":*****,
"maritalStatus":*****,
"occupation": [
"scientist",
"eco-terrorist"
],
"active":*****
},
"characteristics": {
"gender": "female",
"height":*****,
"weight":*****,
"eyes": "green",
"hair": "red"
}
}
A diferencia del caso en que se utilizaron múltiples interceptores, los símbolos usados para ofuscar la información son necesariamente los mismos. |
Share your suggestions with us!
Click here and then [+ Submit idea]