VulCode

Monolog: nasze zmiany w projekcie open source

Najpopularniejsza biblioteka logów w PHP, używana między innymi przez Symfony i Laravela.

Język
PHP
Gwiazdki na GitHubie
21 399
1przyjęta zmiana
Scalona 9 września 2026.
8. miejsce wśród 64 projektów na GitHubie z naszymi zmianami, według gwiazdek. Pierwszy jest Zed (91 587).

Zmiana przyjęta w Monolog

RedactingFormatter ukrywa też sekrety zagnieżdżone w tablicach pod kluczami oznaczonymi jako wrażliwe.

Jak to sprawdziliśmy

Nowy test przepuszcza rekord przez PsrLogMessageProcessor, a potem przez RedactingFormatter, i sprawdza, że sekret zagnieżdżony w tablicy nie występuje w wyniku, a w jego miejscu jest [REDACTED].

PHP

Nasze projekty w tej technologii, ich ekrany i to, kiedy ją wybieramy.

Błąd, poprawka i wniosek

Skrót naszego opisu z Nowinek technicznych: co nie działało, co zmieniliśmy i co z tego wynika dla naszej pracy.

Co nie działało

Hasło z tablicy trafiało do logu

RedactingFormatter zbierał do ukrycia tylko teksty. Gdy pod kluczem password leżała tablica, procesor wstawiał ją do treści komunikatu, a hasło zostawało w niej otwartym tekstem.

$log->info('password reset payload: {password}', ['password' => ['new' => 'CorrectHorseBatteryStaple42']]);
Co zmieniliśmy

Sekrety zbierane na każdej głębokości

Nowa metoda collectSensitiveValue() przechodzi po wartości spod wrażliwego klucza i zbiera każdy tekst, z tym samym limitem głębokości MAX_DEPTH.

Czego nas to nauczyło

Ukrywanie sekretów w logach musi schodzić w głąb struktur danych.

Klucz oznaczony jako wrażliwy jest wrażliwy także wtedy, gdy jego wartością jest tablica.

Inne projekty z naszymi zmianami: PHP

20 projektów w tej technologii ma nasze przyjęte zmiany. Pasek to gwiazdki repozytorium, obok liczba naszych zmian. Każdy wiersz prowadzi do strony projektu.

Pytania o nasze zmiany w Monolog

Skąd są te zmiany, kto je przyjął i czy poprawimy coś w Twojej bibliotece.

Używasz Monolog w swoim projekcie?

Jeśli coś w nim nie działa, poprawimy to u źródła i zostawimy obejście do czasu wydania. Odpiszemy w godzinę.