---
title: "Bezpečné zachytenie about — Testing for Laravel | Roundly"
description: "Zachyťte sekciu artisan about, dokážte, že sa vykreslila, a až potom overte, že neuniká žiadny prístupový údaj."
url: https://roundly-consulting.com/sk/open-source/navody/testing-for-laravel/tajomstva-v-about
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Testing for Laravel](https://roundly-consulting.com/sk/open-source/navody/testing-for-laravel.md)

# Bezpečné zachytenie about

Zachytí jednu sekciu artisan about a overí, že vykreslí, čo má, a neprezradí žiadne z tajomstiev, ktoré prezradiť nesmie:

```php
expect($section)->toLeakNoSecrets(array $secrets, array $mustRender);
```

```php
expect('passkeys')->toLeakNoSecrets(
    secrets: ['auth.acme-internal.example', '/srv/acme/secrets', 'ea9b8d66'],
    mustRender: ['Sign-count policy', 'AAGUID allow-list'],
);
```

| Parameter | Typ | Význam |
| --- | --- | --- |
| `$section` | string | Sekcia odovzdaná príkazu artisan about --only=<section>. |
| `$secrets` | list<string> | Hodnoty, ktoré sa nesmú vykresliť — kľúče, cesty, hostitelia, odtlačky. Každá položka musí byť neprázdny reťazec; prázdny zoznam je zámerná kontrola len vykreslenia. |
| `$mustRender` | list<string> | Reťazce, ktoré sa vykresliť musia — pozitívny dôkaz, že zachytenie funguje. Povinné, neprázdne a každá položka neprázdny reťazec. |

## Poradie krokov

- Najprv musí byť výstup neprázdny.
- Potom musí byť prítomný každý reťazec z $mustRender.
- Až potom sa overí, že sa nevykreslí žiadna položka z $secrets.

Zachytenie ide cez Artisan::call('about', \['--only' => $section\]) a Artisan::output(). Nikdy nečíta app(Kernel::class)->output(), ktoré vracia prázdny reťazec — práve tak kedysi celá sekcia kontrol „nič neuniká“ prechádzala naprázdno a únik sa odhalil len vďaka jednej náhodnej pozitívnej asercii. Prázdne $mustRender vyhodí InvalidArgumentException už pri volaní, pretože čisto negatívna kontrola môže prejsť aj nad prázdnym výstupom.

## Každá položka musí byť nastavená

Každá položka oboch zoznamov musí byť neprázdny reťazec, inak volanie vyhodí InvalidArgumentException. Tajomstvo s hodnotou null — config('a.key.that.is.not.set') — alebo prázdne z nenastavenej premennej prostredia sa nedá nájsť, takže kontrola úniku by prešla bez toho, aby niečo overila; prázdny reťazec v $mustRender sa zase nájde v každom výstupe. Tajomstvo preto v teste najprv nastavte na skutočnú hodnotu.

## V aplikácii

```php
it('does not leak credentials through artisan about', function (): void {
    // Only a secret that is set can be looked for — a null or empty entry throws.
    config(['services.stripe.secret' => 'sk_test_do_not_render_me']);

    expect('environment')->toLeakNoSecrets(
        secrets: [config('app.key'), config('services.stripe.secret')],
        mustRender: ['Application Name'],
    );
});
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/testing-for-laravel.md)
