Rumah > rangka kerja php > Laravel > Laravel 5.7 tidak boleh mengakses penghalaan

Laravel 5.7 tidak boleh mengakses penghalaan

WBOY
Lepaskan: 2023-05-20 15:59:39
asal
585 orang telah melayarinya

Dengan pelancaran Laravel 5.7, ramai pengguna telah melaporkan masalah dengan penghalaan akses. Berlakunya masalah ini mungkin menyebabkan anda membuang banyak masa semasa proses pembangunan. Untuk membantu anda menyelesaikan masalah ini, artikel ini akan memperkenalkan secara terperinci penyelesaian kepada masalah yang Laravel 5.7 tidak dapat mengakses penghalaan.

Mula-mula kita perlu memahami beberapa perubahan baharu dalam Laravel 5.7, yang mungkin menyebabkan kod sebelumnya tidak berjalan dengan betul. Salah satu perubahan yang paling penting ialah penambahan perisian tengah perlindungan CSRF secara lalai. Perisian tengah ini boleh memastikan bahawa data borang yang diserahkan oleh pengguna datang daripada aplikasi anda dan menghalang aplikasi daripada serangan CSRF.

Perisian tengah perlindungan CSRF sudah wujud dalam Laravel 5.6, tetapi ia tidak didayakan secara lalai. Tetapi dalam Laravel 5.7, pasukan Laravel telah mendayakan perisian tengah ini secara lalai. Oleh itu, dalam Laravel 5.7, anda perlu menambah token CSRF apabila menyerahkan data menggunakan borang.

Penyelesaian:

Terdapat dua cara untuk menyelesaikan masalah Laravel 5.7 tidak dapat mengakses penghalaan. Kaedah pertama ialah menambah token CSRF dalam fail web.php. Kaedah kedua ialah untuk melumpuhkan perisian tengah perlindungan CSRF.

Kaedah 1: Tambahkan token CSRF dalam fail web.php

Kumpulan middleware web digunakan secara lalai dalam RouteServiceProvider.php bagi kod Laravel 5.7, oleh itu, tambahkannya dalam fail web.php Cara paling mudah untuk mencipta token CSRF ialah menggunakan kaedah {{ csrf_field() }}.

Contohnya, jika anda mempunyai laluan yang mengendalikan permintaan POST:

Route::post('/foo', function () {

return 'Hello World';
Salin selepas log masuk

});

Anda perlu menambah kaedah {{ csrf_field() }} pada borang untuk menjana token CSRF:

{{ csrf_field() }}
<!-- ... -->
Salin selepas log masuk

Kaedah ini memastikan aplikasi Laravel 5.7 anda boleh mengendalikan permintaan POST seperti biasa.

Kaedah 2: Lumpuhkan perisian tengah perlindungan CSRF

Melumpuhkan perisian tengah perlindungan CSRF ialah cara lain untuk menyelesaikan masalah yang Laravel 5.7 tidak dapat mengakses penghalaan. Walaupun pendekatan ini mungkin mengurangkan sedikit keselamatan aplikasi Laravel anda, ia boleh dilaksanakan jika aplikasi anda tidak berisiko daripada serangan CSRF.

Untuk melumpuhkan perisian tengah perlindungan CSRF, anda perlu menambah URI untuk diabaikan dalam atribut $except kelas VerifyCsrfToken.

Buka fail app/Http/Middleware/VerifyCsrfToken.php dan tambahkan laluan untuk diabaikan dalam atribut $except:

protected $except = [

'your-route-to-ignore'
Salin selepas log masuk

] ;

Sebagai contoh, katakan anda mahu mengabaikan laluan "daftar":

protected $except = [

'register'
Salin selepas log masuk

];

Kaedah ini akan memastikan Laravel 5.7 Aplikasi anda boleh mengendalikan semua permintaan secara normal.

Kesimpulan:

Secara amnya, masalah tidak dapat mengakses penghalaan dalam Laravel 5.7 disebabkan terutamanya oleh perisian tengah perlindungan CSRF yang didayakan secara lalai. Oleh itu, jika anda menghadapi masalah ini semasa pembangunan, anda boleh mencuba dua kaedah ini untuk menyelesaikannya. Jika anda ingin melumpuhkan perisian tengah perlindungan CSRF, anda hanya perlu menggunakannya untuk laluan yang tidak melibatkan data sensitif atau penting. Kaedah ini mungkin mengurangkan sedikit keselamatan aplikasi Laravel anda, jadi disyorkan untuk menggunakan kaedah satu untuk memastikan keselamatan aplikasi anda.

Atas ialah kandungan terperinci Laravel 5.7 tidak boleh mengakses penghalaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan