Skip to content

v1.2.29: refactor!: RequestLogger pouziva adt/log-sanitizer

Choose a tag to compare

@thorewi thorewi released this 31 Aug 08:09
· 35 commits to main since this release
Maskovaci logika byla privatni a privarena k insertu do request_log,
takze se nedala pouzit pro api_log, transaction_log ani pro auditni
zaznamy v jinych balicich. Ze 224 radku zbylo 132; z privatnich metod
zustava jen doLogRequest().

Krome odstraneni duplikace to prinasi tri veci, ktere tu chybely:

  - Opravu falesnych shod. Puvodni porovnani bylo ciste podretezcove
    a v seznamu bylo 'pin', takze str_contains('shipping', 'pin') je
    true a maskovalo se 'shippingAddress' (a 'company' kvuli 'pan').
    Sanitizer rozpada nazev na slova a kratke terminy musi trefit cele
    slovo. Neni to unik, ale je to dira v logu, o ktere nikdo nevi.
  - Maskovani cisel karet (Luhn + rozpoznani schematu) a moznost
    upozornit, kdyz PAN v payloadu je - to znamena rozbitou integraci
    vys, ne jen spinavy log.
  - hideValue() pro tajemstvi bez stabilniho nazvu klice: vydany token
    se zamaskuje i v URL nebo v chybove zprave, ne jen v poli 'token'.

BC: konstruktor bere tretiho parametru SensitiveDataSanitizer (v neon
se autowiruje, projekty registrujici logger s pozicnimi argumenty
menit nemusi). Public static $sensitiveKeys je zrusena - projekty,
ktere si ji upravovaly, maji nastavit sluzbu sanitizeru.