Meningkatkan Pengurusan Token CSRF untuk AJAX dalam Laravel 9+: Amalan Terbaik
P粉242741921
P粉242741921 2023-08-08 19:46:23
0
1
393

Dalam konteks Laravel 9+, permintaan AJAX perlu mendedahkan token CSRF untuk memastikan langkah keselamatan yang diperlukan. Walau bagaimanapun, kaedah peletakan token yang berbeza mungkin menjejaskan keanggunan dan organisasi kod anda. Dua kaedah utama adalah seperti berikut:

Kaedah 1: Masukkan terus token CSRF melalui sintaks Blade

Dalam kaedah ini, Kad token CSRF dibenamkan terus ke dalam JavaScript melalui sintaks Blade. (Mengulangi kod yang sama di beberapa tempat)


$(document).ready(function() { $.ajaxSetup({ tajuk: { 'X-CSRF-TOKEN': "{{ csrf_token() }}" } }); });  

Walaupun pendekatan ini mengekalkan token di luar kandungan HTML, ia memerlukan penggunaan sintaks Blade dalam fail JavaScript, merumitkan pengasingan kebimbangan.

Kaedah 2: Ekstrak token CSRF daripada meta tag

Kaedah ini melibatkan meletakkan token CSRF dalam tag meta HTML, Kemudian ekstrak untuk digunakan dalam persediaan AJAX.


$(document).ready(function() { $.ajaxSetup({ tajuk: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); });  

Dalam pendekatan ini, walaupun token didedahkan dalam HTML (yang akan didedahkan juga), ia memudahkan pengurusan fail JavaScript, menggunakan semula dan memudahkan untuk memisahkan kod/kebimbangan.

Memandangkan perkara di atas, saya rasa pendekatan 2 adalah lebih baik kerana ia lebih elegan dan menyediakan pengasingan kebimbangan yang lebih baik. Atau adakah terdapat amalan terbaik lain dalam Laravel untuk mengurus penempatan token CSRF apabila menggunakan permintaan AJAX untuk menyediakan keseimbangan keselamatan dan organisasi kod yang lebih baik? Mengharapkan pandangan anda.

PS: Saya melihat contohnya https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html tetapi sebahagian daripadanya di luar pemahaman saya.


P粉242741921
P粉242741921

membalas semua (1)
P粉988025835

Token hanya didedahkan kepada pengguna yang anda ingin memilikinya (supaya mereka boleh menghantarnya kembali kepada anda).

Ia tidak akan terdedah kepada mana-mana penyerang. (Melainkan mereka entah bagaimana telah menjejaskan komunikasi antara pelayan dan penyemak imbas, bermakna mereka telah mendapat lebih banyak akses daripada serangan CSRF yang berjaya.)

Pilih pilihan langsung.


    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!