Rumah > Artikel > rangka kerja php > laravel keluarkan csrf
Laravel ialah rangka kerja PHP popular yang telah menjadi pilihan popular di kalangan pembangun profesional dan pemula. Rangka kerja Laravel melaksanakan perlindungan CSRF untuk mengelakkan serangan pemalsuan permintaan merentas tapak. Walau bagaimanapun, dalam beberapa kes, kadangkala perlu untuk mengalih keluar perlindungan CSRF Artikel ini akan menunjukkan kepada anda cara untuk mengalih keluar perlindungan CSRF dalam Laravel.
Pemalsuan permintaan merentas tapak, disingkatkan sebagai CSRF dalam bahasa Inggeris, ialah serangan web biasa. Penyerang menggunakan identiti mangsa dalam keadaan log masuk untuk memalsukan permintaan untuk mencapai operasi berniat jahat. Untuk mengelakkan serangan seperti ini, Laravel melaksanakan fungsi perlindungan CSRF, yang boleh melindungi aplikasi web dengan baik.
Pelaksanaan perlindungan CSRF dalam Laravel terutamanya melibatkan tiga langkah berikut:
2.1 🎜>
Tambah arahan csrf_field dalam borang HTML Arahan ini akan menjana token CSRF secara automatik dan menambahkannya ke medan tersembunyi borang.<form> @csrf <input type="text" name="name"> <input type="submit" value="Submit"> </form>2.2. Sahkan token CSRFDi bahagian belakang, Laravel akan mengesahkan sama ada token CSRF yang diminta adalah sah. Jika ia menyalahi undang-undang, mesej ralat akan dikembalikan. Dalam Laravel 5.6 dan versi yang lebih baru, perisian tengah perlindungan CSRF ditambahkan secara lalai, dan semua permintaan Pos akan menjalani pengesahan CSRF. Jika permintaan anda tidak membawa token CSRF dengan betul, anda akan mendapat mesej ralat berikut:
TokenMismatchException in VerifyCsrfToken.php line 68:2.3 Perlindungan serangan skrip merentas tapak Untuk mengelakkan serangan skrip merentas tapak, anda harus mengikut prinsip "Escape" "Output", jangan keluarkan secara langsung data yang disediakan oleh pengguna, tetapi harus memprosesnya sebelum mengeluarkannya. Contohnya, gunakan fungsi htmlentities atau htmlspecialchars untuk melepaskan aksara khas HTML. Di atas ialah cara melaksanakan perlindungan CSRF dalam Laravel. Di bawah kami akan menerangkan cara mengalih keluar perlindungan ini.
protected $middlewareGroups = [ 'web' => [ AppHttpMiddlewareEncryptCookies::class, // IlluminateSessionMiddlewareAuthenticateSession::class, // IlluminateRoutingMiddlewareSubstituteBindings::class, // IlluminateFoundationHttpMiddlewareVerifyCsrfToken::class, ], 'api' => [ 'throttle:60,1', 'auth:api', ], ];Pada masa ini, semua permintaan Pos tidak akan disahkan untuk perlindungan CSRF. Walaupun perlindungan CSRF boleh dialih keluar, ini juga mewakili risiko keselamatan tertentu. Oleh itu, adalah disyorkan untuk hanya mendayakannya dalam persekitaran ujian yang ketat. 3.2 Abaikan perlindungan CSRF secara manual Jika anda mematikan perisian tengah perlindungan CSRF secara global, anda boleh mengabaikan pengesahan perlindungan CSRF secara manual dalam laluan atau pengawal tertentu. Kaedah khusus adalah seperti berikut: Dalam laluan atau kaedah pengawal yang perlu dikeluarkan, gunakan kaedah withoutMiddleware:
Route::post('route', function () { // })->withoutMiddleware([IlluminateFoundationHttpMiddlewareVerifyCsrfToken::class]);Kaedah ini boleh digunakan dalam beberapa kes khas, tetapi ia adalah tidak disyorkan dalam semua Penghala semua menggunakan kaedah ini. Ringkasnya, melaksanakan perlindungan CSRF dalam Laravel ialah langkah keselamatan yang baik Tidak disyorkan untuk mengalih keluar perlindungan CSRF apabila ia tidak diperlukan. Jika perlu, anda boleh mengalih keluar perlindungan CSRF melalui kaedah di atas. Sudah tentu, dalam pembangunan projek sebenar, sila gunakannya dengan berhati-hati mengikut situasi sebenar.
Atas ialah kandungan terperinci laravel keluarkan csrf. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!