diff --git a/pkg/redact/redact.go b/pkg/redact/redact.go index 2dae5843..095ce642 100644 --- a/pkg/redact/redact.go +++ b/pkg/redact/redact.go @@ -223,6 +223,11 @@ func getRedactors(path string) ([]Redactor, error) { name: "Redact database connection strings that contain username and password", }, // standard postgres and mysql connection strings + // protocol://user:password@host:5432/db + { + regex: `\b(\w*:\/\/)(?P[^:\"\/]*){1}(:)(?P[^:\"\/]*){1}(@)(?P[^:\"\/]*){1}(?P:[\d]*)?(\/)(?P[\w\d\S-_]+){1}\b`, + name: "Redact database connection strings that contain username and password", + }, { regex: `(?i)(Data Source *= *)(?P[^\;]+)(;)`, name: "Redact 'Data Source' values commonly found in database connection strings", diff --git a/pkg/redact/redact_test.go b/pkg/redact/redact_test.go index b04d06b6..3d774ae8 100644 --- a/pkg/redact/redact_test.go +++ b/pkg/redact/redact_test.go @@ -64,6 +64,10 @@ func Test_Redactors(t *testing.T) { "name": "POSTGRES_CONNECTION_STRING", "value": "Provider=PostgreSQL OLE DB Provider;Data Source=myServerAddress;location=myDataBase;User ID=myUsername;password=myPassword;timeout=1000;" }, + { + "name": "POSTGRES_CONNECTION_STRING_2", + "value": "postgres://pg_user:pg_password@pg_host:5432/pg_database" + }, { "name": "MYSQL_CONNECTION_STRING", "value": "Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;UseProcedureBodies=False;" @@ -868,6 +872,10 @@ func Test_Redactors(t *testing.T) { "name": "POSTGRES_CONNECTION_STRING", "value": "Provider=PostgreSQL OLE DB Provider;Data Source=***HIDDEN***;location=***HIDDEN***;User ID=***HIDDEN***;password=***HIDDEN***;timeout=1000;" }, + { + "name": "POSTGRES_CONNECTION_STRING_2", + "value": "postgres://***HIDDEN***:***HIDDEN***@***HIDDEN***:5432/***HIDDEN***" + }, { "name": "MYSQL_CONNECTION_STRING", "value": "Server=***HIDDEN***;Database=***HIDDEN***;Uid=***HIDDEN***;Pwd=***HIDDEN***;UseProcedureBodies=False;" @@ -1619,7 +1627,7 @@ func Test_Redactors(t *testing.T) { } ]` - wantRedactionsLen := 38 + wantRedactionsLen := 39 wantRedactionsCount := 25 t.Run("test default redactors", func(t *testing.T) {