Ich schreibe gerade einen Test, um sicherzustellen, dass unser CSRF-Schutz in Laravel funktioniert. Der Test sieht so aus.Laravel PHPUnit übergibt immer CSRF
public function testSecurityIncorrectCSRF()
{
$this->visit('/login')
->type('REDACTED', 'email')
->type('123123', 'password');
session()->regenerateToken();
$this->press('login')
->seePageIs('/login');
}
Egal was ich tue, und selbst wenn ich eine falsche _token passieren, wird der Login-Anfrage immer erfolgreich. Ich habe es außerhalb des PHPUnit-Tests versucht und dort funktioniert der CSRF-Schutz. Alle meine Middlewares sind aktiviert, daher sollte der CSRF-Schutz aktiviert sein.
Kann jemand erklären, warum das passiert?
Haben Sie den Standard geändert 'App \ Http \ kernel.php' Datei und bewegten das' web 'Middleware woanders? – Ohgodwhy
'protected $ middlewareGroups = [ 'web' => [ \ Illuminate \ Session \ Middleware \ StartSession :: Klasse, \ App \ Http \ Middleware \ VerifyCsrfToken :: Klasse, ]]' – Hedam
Es ist im Grunde das ursprüngliche Kernel , nur mit einigen zusätzlichen Middlewares – Hedam