
    i                         U d Z ddlZddlmZ g dZeee                  ed<   g dZeee	eef                           ed<   d eD             d	 d
D             z   Z
dedefdZdedefdZdS )u   敏感信息过滤模块。    N)Final)z(password|passwd|pwd)\s*=\s*\S+z!(api[_-]?key|apikey)\s*[=:]\s*\S+z,(token|access_token|auth_token)\s*[=:]\s*\S+z (secret|secret_key)\s*[=:]\s*\S+Bearer\s+\S+!-----BEGIN\s+.*PRIVATE\s+KEY----------BEGIN\s+.*CERTIFICATE-----SENSITIVE_PATTERNS))z!(password|passwd|pwd)\s*=\s*(\S+)\1=[REDACTED])z#(api[_-]?key|apikey)\s*[=:]\s*(\S+)r   )z.(token|access_token|auth_token)\s*[=:]\s*(\S+)r   )z"(secret|secret_key)\s*[=:]\s*(\S+)r   _KEY_VALUE_PATTERNSc                 V    g | ]&\  }}t          j        |t           j                  |f'S  recompile
IGNORECASE).0patternreplacements      8/root/projects/qq-shell/src/butler/security/sanitizer.py
<listcomp>r      s?        Z''5      c                 P    g | ]#}t          j        |t           j                  d f$S )z
[REDACTED]r   )r   r   s     r   r   r      s;        Z''6  r   )r   r   r   outputreturnc                 P    | }t           D ]\  }}|                    ||          }|S )u   
    过滤输出中的敏感信息。

    Args:
        output: 原始输出字符串

    Returns:
        过滤后的安全输出
    )_COMPILED_SANITIZERSsub)r   	sanitizedr   r   s       r   sanitize_outputr   %   s8     I 4 8 8KKY77		r   textc                 P    t           D ]\  }}|                    |           r dS dS )u   
    检查文本是否包含敏感信息。

    Args:
        text: 要检查的文本

    Returns:
        如果包含敏感信息返回 True
    TF)r   search)r   r   _s      r   contains_secretsr"   5   s<     +  
>>$ 	44	5r   )__doc__r   typingr   r   liststr__annotations__r	   tupler   r   boolr"   r   r   r   <module>r*      s   ! ! ! 				      ( ( ( E$s)$   5 5 5 U4c3h01     3     
 C C     3 4      r   