Jadual Kandungan
Penyelesaian kepada serangan CSRF dalam Laravel
Cara mengelakkan serangan CSRF dalam Laravel" >Cara mengelakkan serangan CSRF dalam Laravel
Kecualikan penghalaan pengecualian daripada pengesahan CSRF" >Kecualikan penghalaan pengecualian daripada pengesahan CSRF
Rumah rangka kerja php Laravel Penyelesaian kepada serangan csrf dalam laravel

Penyelesaian kepada serangan csrf dalam laravel

Jun 21, 2022 pm 04:07 PM
laravel

Penyelesaian: 1. Gunakan Laravel untuk menjana "Token CSRF" secara automatik untuk setiap Sesi pengguna Token ini boleh digunakan untuk mengesahkan sama ada pengguna yang log masuk dan orang yang memulakan permintaan adalah orang yang sama tidak, permintaan akan gagal; 2 , menyediakan fungsi bantuan global "csrf_token" untuk mendapatkan nilai Token, cuma tambah kod token dalam borang penyerahan paparan, sintaksnya ialah "<...value php="" echo="">".

Penyelesaian kepada serangan csrf dalam laravel

Persekitaran pengendalian artikel ini: sistem Windows 10, Laravel versi 9, komputer Dell G3.

Penyelesaian kepada serangan CSRF dalam Laravel

CSRF ialah singkatan Bahasa Inggeris bagi pemalsuan permintaan silang tapak

Sangat mudah untuk mengelakkan serangan CSRF dalam rangka kerja Laravel Mudah:

1. Laravel menjana Token CSRF secara automatik untuk setiap Sesi pengguna ini boleh digunakan untuk mengesahkan sama ada pengguna yang log masuk dan peminta adalah orang yang sama. (Prinsipnya adalah sama dengan kod pengesahan.)

2 Laravel menyediakan fungsi penolong global csrf_token untuk mendapatkan nilai Token, jadi anda hanya perlu menambah kod HTML berikut pada borang penyerahan paparan untuk disertakan. ia dalam Token permintaan:

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
Salin selepas log masuk

Cara mengelakkan serangan CSRF dalam Laravel

Kes: Laksanakan pengesahan mekanisme CSRF melalui kes
1 , satu dengan Paparkan borang (dapat), dan proses permintaan (siaran)

Route::get(&#39;test6&#39;,&#39;Home\TestController@test6&#39;);Route::post(&#39;test7&#39;,&#39;Home\TestController@test7&#39;);
Salin selepas log masuk

2 Cipta kaedah yang diperlukan

	 public function test6(){
        return view(&#39;home.test.test6&#39;);
     }
     public function test7()
     {
         return "请求提交成功";
     }
Salin selepas log masuk

3 Cipta borang ringkas yang diperlukan

Penyelesaian kepada serangan csrf dalam laravel

4. Kesan penyerahan (halaman ralat)

Penyelesaian kepada serangan csrf dalam laravel

Kesimpulan: Melalui kes sebentar tadi, ia menunjukkan pengesahan csrf mekanisme dalam laravel didayakan secara lalai.

5. Selesaikan masalah pelaporan ralat (cara lulus pengesahan csrf)
Penyelesaian: bawa nilai token yang diperlukan untuk csrf, dan hantarkannya ke kaedah berikutnya dengan permintaan

<form action="/home/test/test7" method="post">
    用户名:<input type="text" name="username"><br>
    <input type="hidden" name="_token" value="{{csrf_token()}}">
    {{csrf_field()}}
    <input type="submit" value="提交"></form>
Salin selepas log masuk

Untuk kaedah csrf_token Permudah: {{csrf_field()}}

Ungkapan khusus:

Penyelesaian kepada serangan csrf dalam laravel

Perbezaan antara keduanya:
Csrf_token hanyalah output Nilai token
Csrf_field mengeluarkan keseluruhan medan tersembunyi input

Cara memilih apabila menggunakannya kemudian: Dalam kebanyakan kes, anda boleh memilih mengikut situasi. Tetapi terdapat situasi di mana pembangun tidak mempunyai hak untuk memilih dan mesti menggunakan csrf_token Dalam kes ini, kaedah penyerahan borang tak segerak digunakan.

Kecualikan penghalaan pengecualian daripada pengesahan CSRF

Bukan semua permintaan perlu mengelakkan serangan CSRF, seperti permintaan kepada API pihak ketiga untuk mendapatkan data.
Pengecualian boleh ditetapkan dengan menambahkan URL permintaan untuk dikecualikan pada tatasusunan sifat $except dalam perisian tengah VerifyCsrfToken (app/Http/Middleware/VerifyCsrfToken.php):

dengan menulis konfigurasi:
Kaedah penulisan pengecualian Penghalaan Tunggal

 &#39;home.test.test6&#39;,
Salin selepas log masuk

Berbilang elemen dipisahkan dengan "," dan ikut kaedah penulisan tatasusunan.

&#39;home.test.test6&#39;,&#39;home.test.test7&#39;
Salin selepas log masuk

Jika anda perlu mengecualikan semua laluan dan menggunakan csrf, anda boleh menulis:

&#39;*&#39;
Salin selepas log masuk

[Cadangan berkaitan: tutorial video laravel]

Atas ialah kandungan terperinci Penyelesaian kepada serangan csrf dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Apr 01, 2025 pm 02:45 PM

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Mar 31, 2025 pm 11:24 PM

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Mar 31, 2025 pm 11:48 PM

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Apr 01, 2025 am 07:09 AM

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Apr 01, 2025 am 07:45 AM

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...

Laravel fasih orm dalam carian model separa Bangla) Laravel fasih orm dalam carian model separa Bangla) Apr 08, 2025 pm 02:06 PM

Pengambilan Model Laraveleloquent: Mudah mendapatkan data pangkalan data Eloquentorm menyediakan cara ringkas dan mudah difahami untuk mengendalikan pangkalan data. Artikel ini akan memperkenalkan pelbagai teknik carian model fasih secara terperinci untuk membantu anda mendapatkan data dari pangkalan data dengan cekap. 1. Dapatkan semua rekod. Gunakan kaedah semua () untuk mendapatkan semua rekod dalam jadual pangkalan data: USEAPP \ MODELS \ POST; $ POSTS = POST :: SEMUA (); Ini akan mengembalikan koleksi. Anda boleh mengakses data menggunakan gelung foreach atau kaedah pengumpulan lain: foreach ($ postsas $ post) {echo $ post->

Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Apr 01, 2025 am 09:09 AM

Sambungan pangkalan data penyewa tersuai dalam pakej lanjutan multi-penyewa Larave Stancl/penyewaan ketika membina aplikasi multi-penyewa menggunakan pakej lanjutan multi-penyewa Larave Stancl/penyewaan, ...

Geospatial Laravel: Pengoptimuman peta interaktif dan sejumlah besar data Geospatial Laravel: Pengoptimuman peta interaktif dan sejumlah besar data Apr 08, 2025 pm 12:24 PM

Cecair memproses 7 juta rekod dan membuat peta interaktif dengan teknologi geospatial. Artikel ini meneroka cara memproses lebih dari 7 juta rekod menggunakan Laravel dan MySQL dan mengubahnya menjadi visualisasi peta interaktif. Keperluan Projek Cabaran Awal: Ekstrak Wawasan berharga menggunakan 7 juta rekod dalam pangkalan data MySQL. Ramai orang mula -mula mempertimbangkan bahasa pengaturcaraan, tetapi mengabaikan pangkalan data itu sendiri: Bolehkah ia memenuhi keperluan? Adakah penghijrahan data atau pelarasan struktur diperlukan? Bolehkah MySQL menahan beban data yang besar? Analisis awal: Penapis utama dan sifat perlu dikenalpasti. Selepas analisis, didapati bahawa hanya beberapa atribut yang berkaitan dengan penyelesaiannya. Kami mengesahkan kemungkinan penapis dan menetapkan beberapa sekatan untuk mengoptimumkan carian. Carian Peta Berdasarkan Bandar

See all articles