Skip to content

Commit

Permalink
Do not require leading quotes for high-entropy strings in ini and yaml
Browse files Browse the repository at this point in the history
  • Loading branch information
anatolii-paloaltonetworks committed Apr 24, 2024
1 parent 2b96e50 commit 96aeb9c
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion detect_secrets/plugins/high_entropy_strings.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def __init__(self, charset: str, limit: float) -> None:

# We require quoted strings to reduce noise.
# NOTE: We need this to be a capturing group, so back-reference can work.
self.regex = re.compile(r'([\'"]?)([{}]+)(\1)'.format(re.escape(charset)))
self.regex = re.compile(r'([\'":=])\s*([{}]+)([\'"]?)'.format(re.escape(charset)))

def analyze_string(self, string: str) -> Generator[str, None, None]:
for result in self.regex.findall(string):
Expand Down
10 changes: 9 additions & 1 deletion tests/plugins/high_entropy_strings_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,15 @@ class TestHighEntropyString:
("'{secret}'", True),
# Non-quoted string
('{secret}', True),
('{secret}', False),
# Non-quoted string from ini file
('some_key = {secret}', True),
('some_key={secret}', True),
#
# Non-quoted string from Yaml
('some_key: {secret}', True),
('some_key:{secret}', True),
),
)
def test_basic(plugin, non_secret, secret, format, should_be_caught):
Expand Down

0 comments on commit 96aeb9c

Please sign in to comment.