security: Breadcrumbs ohne Daten an GlitchTip, Übergangsmarke der Session-Sperre entfernt
- ErrorReportScrubber entfernt die Daten aller Breadcrumbs und bereinigt ihre Nachrichten; Livewire-Breadcrumbs standardmäßig aus — das SDK hängt dort Formularwerte und Properties an (Roadmap 4.9). Bestand in GlitchTip geprüft: keine Formular- oder Passwortdaten. - SessionRevocation::legacyCachedMark() entfernt (Übergang bis v1.6.0) Changelog: Sicherheit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
29e68330ca
commit
d1b9ffdcf1
6 changed files with 49 additions and 18 deletions
|
|
@ -6,6 +6,7 @@ use Illuminate\Contracts\Debug\ExceptionHandler;
|
|||
use Illuminate\Support\Facades\Route;
|
||||
use Livewire\Features\SupportFileUploads\MissingFileUploadsTraitException;
|
||||
use Livewire\Features\SupportLockedProperties\CannotUpdateLockedPropertyException;
|
||||
use Sentry\Breadcrumb;
|
||||
use Sentry\Event;
|
||||
use Sentry\ExceptionDataBag;
|
||||
use Sentry\SentrySdk;
|
||||
|
|
@ -110,6 +111,28 @@ test('messages and exception values lose e-mail addresses', function () {
|
|||
->and($scrubbed?->getUser())->toBeNull();
|
||||
});
|
||||
|
||||
test('breadcrumbs lose their data, so form values never reach glitchtip', function () {
|
||||
$event = Event::createEvent();
|
||||
$event->setBreadcrumb([
|
||||
new Breadcrumb(Breadcrumb::LEVEL_INFO, Breadcrumb::TYPE_DEFAULT, 'livewire', 'Component booted: customer.security', [
|
||||
'updates' => ['password' => 'Geheim-12345!', 'email' => 'kunde@example.com'],
|
||||
]),
|
||||
new Breadcrumb(Breadcrumb::LEVEL_INFO, Breadcrumb::TYPE_DEFAULT, 'db.sql.query', 'select * from users where email = info@firma.de', ['executionTimeMs' => 1.2]),
|
||||
]);
|
||||
|
||||
$breadcrumbs = ErrorReportScrubber::beforeSend($event)?->getBreadcrumbs() ?? [];
|
||||
|
||||
expect($breadcrumbs)->toHaveCount(2)
|
||||
->and($breadcrumbs[0]->getMetadata())->toBe([])
|
||||
->and($breadcrumbs[0]->getMessage())->toBe('Component booted: customer.security')
|
||||
->and($breadcrumbs[1]->getMetadata())->toBe([])
|
||||
->and($breadcrumbs[1]->getMessage())->toBe('select * from users where email = [email]');
|
||||
});
|
||||
|
||||
test('livewire breadcrumbs are switched off by default', function () {
|
||||
expect(config('sentry.breadcrumbs.livewire'))->toBeFalse();
|
||||
});
|
||||
|
||||
test('the test suite never reports to the real glitchtip', function () {
|
||||
// Ohne diese Absicherung landeten absichtlich provozierte Fehler
|
||||
// („Queue weg“, „Datenbank nicht erreichbar“) als Issues in GlitchTip.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue