플랫 로그 파일에 있는 모든 유형의 민감한 데이터(사용자 이름, 비밀번호, API 키, 데이터베이스 연결 문자열, 엔드포인트, 비밀, 비밀이 포함된 사용자 정의 변수까지)를 마스킹하고 싶습니다.
현재 사용 중인 스크립트는 다음과 같습니다.
import re
def mask_secrets(log_file):
# Read the log file
with open(log_file, 'r') as file:
log_data = file.read()
# Define the pattern to search for sensitive data
pattern = r'\b(\w+)\b:\s*(\w+)'
# Mask the sensitive data in the log data
log_data = re.sub(pattern, r'\1: ********', log_data)
# Write the masked log data back to the file
with open(log_file, 'w') as file:
file.write(log_data)
# Usage example
log_file = 'path/to/your/log/file.txt'
mask_secrets(log_file)
그러나 타임스탬프의 시간 필드를 마스킹하고 데이터베이스 연결 문자열, 데이터베이스 비밀번호 및 비밀이 포함된 사용자 정의 변수와 같은 일부 비밀은 마스킹하지 않습니다.
2022-01-01 12: ********:00 - User login successful - username: ********.doe, password: ********
2022-01-02 09: ********:15 - API request made - endpoint: /api/data, api_key: ********
2022-01-03 14: ********:22 - User login failed - username: ********.smith, password: ********
2022-01-04 18: ********:10 - API request made - endpoint: /api/data, api_key: ********
2022-01-06 17: ********:22 - DB Connection failed - DB String=guad8b237d7$vu87s, DB password=isbdihkaw978vw8a783wgfb
2022-01-07 19: ********:10 - API request made - endpoint: /api/data, api_key= xyz789s87dv7ghs
2022-01-07 19: ********:10 - User login failed - foo=uyai6d3ibdqi%*^^@%, bar=862479dhb7656%^&^%%^))_=
이 스크립트에 사용된 정규식은 그에 따라 수정되어야 합니다. 이상적으로는 오른쪽에 있는 모든 값을 마스크하고 싶습니다 =
. 이것이 가능합니까?