Защита чувствительных данных в PHP



sensitive_parameter — это атрибут, позволяющий пометить параметры функций и методов как чувствительные, чтобы исключить их из логов и трейсбеков.



Как работает sensitive_parameter:

При использовании этого атрибута, PHP скрывает значение параметра в сообщениях об ошибках и логах, заменяя его на ***. Это помогает предотвратить утечки конфиденциальной информации, такой как пароли или токены.



Пример использования:

class UserAuthenticator {

public function authenticate(

#[\SensitiveParameter] string $password

) {

// Логика аутентификации

if ($password !== 'secret') {

throw new \Exception("Authentication failed");

}

}

}



try {

(new UserAuthenticator())->authenticate('wrong_password');

} catch (\Exception $e) {

error_log($e->getMessage());

error_log($e->getTraceAsString());

}




В этом примере, если аутентификация не удастся, в логе вместо фактического значения пароля будет отображено ***.



👉 @PHPgx | #заметки