59 lines
2.3 KiB
Python
59 lines
2.3 KiB
Python
# -*- coding:utf-8 -*-
|
|
#############################################################################
|
|
# Copyright (c): 2012-2019, Huawei Tech. Co., Ltd.
|
|
# FileName : sensitive_mask.py
|
|
# Version : Gauss300
|
|
# Date : 2021-06-30
|
|
# Description : sensitive_mask.py is utility to mask sensitive message
|
|
#############################################################################
|
|
|
|
import re
|
|
|
|
|
|
class SensitiveMask(object):
|
|
""" Mask sensitive message
|
|
"""
|
|
@classmethod
|
|
def mask_sensitive_para(cls, msg):
|
|
""" mask gs tools Sensitive param """
|
|
mask_items = {
|
|
"gsql": ["--with-key", "-k"],
|
|
"gs_encrypt": ["--key-base64", "--key", "-B", "-k"],
|
|
"gs_guc encrypt": ["-K"],
|
|
"gs_guc generate": ["-S"],
|
|
"gs_dump": ["--rolepassword", "--with-key"],
|
|
"gs_dumpall": ["--rolepassword", "--with-key"],
|
|
"gs_restore": ["--with-key", "--rolepassword"],
|
|
"gs_ctl": ["-P"],
|
|
"gs_redis": ["-A"],
|
|
"gs_initdb": ["--pwprompt", "--pwpasswd"],
|
|
"gs_roach": ["--obs-sk"],
|
|
"InitInstance": ["--pwpasswd"]
|
|
}
|
|
for t_key, t_value in mask_items.items():
|
|
if t_key in msg or all(tk in msg for tk in t_key.split()):
|
|
pattern = re.compile("|".join([r"(?<=%s)[ =]+[^ ]*[ ]*" % i for i in t_value]))
|
|
msg = pattern.sub(lambda m: " *** ", msg)
|
|
return msg
|
|
|
|
@classmethod
|
|
def mask_pwd(cls, msg):
|
|
"""mask pwd in msg"""
|
|
replace_reg = re.compile(r'-W[ ]*[^ ]*[ ]*')
|
|
msg = replace_reg.sub('-W *** ', str(msg))
|
|
replace_reg = re.compile(r'-w[ ]*[^ ]*[ ]*')
|
|
msg = replace_reg.sub('-w *** ', str(msg))
|
|
replace_reg = re.compile(r'--password[ ]*[^ ]*[ ]*')
|
|
msg = replace_reg.sub('--password *** ', str(msg))
|
|
replace_reg = re.compile(r'--pwd[ ]*[^ ]*[ ]*')
|
|
msg = replace_reg.sub('--pwd *** ', str(msg))
|
|
replace_reg = re.compile(r'--root-passwd[ ]*[^ ]*[ ]*')
|
|
msg = replace_reg.sub('--root-passwd *** ', str(msg))
|
|
replace_reg = re.compile(r'-P[ ]*[^ ]*[ ]*')
|
|
msg = replace_reg.sub('-P *** ', str(msg))
|
|
|
|
msg = cls.mask_sensitive_para(msg)
|
|
replace_reg = re.compile(r'echo[ ]*[^ ]*[ ]*')
|
|
msg = replace_reg.sub('echo *** ', str(msg))
|
|
return msg
|