Dalam tutorial ini, kami akan mempelajari cara melaksanakan perlindungan CSRF (Cross-Site Request Forgery) dalam Lithe untuk mengelakkan permintaan yang tidak diingini daripada dibuat pada permohonan anda. Panduan ini direka untuk pemula, jadi kami akan pergi langkah demi langkah!
Apakah CSRF?
CSRF, atau Pemalsuan Permintaan Merentas Tapak, ialah sejenis serangan di mana pengguna ditipu untuk melaksanakan tindakan yang tidak dibenarkan pada tapak web yang mereka disahkan. Serangan ini berbahaya kerana penyerang boleh memanipulasi data atau mengakses kawasan larangan. Untuk mengelakkan ini, kami menambah lapisan keselamatan yang menghentikan permintaan yang mencurigakan daripada diproses.
Struktur Tutorial
- Sediakan Lithe
- Pasang CSRF Middleware
- Tambah Token CSRF di Bahagian Belakang
- Sahkan Token di Bahagian Belakang
- Hantar Token dari Frontend
- Uji Perlindungan CSRF
Jom mulakan!
Langkah 1: Menyediakan Lithe
Jika anda belum menyediakan Lithe lagi, mulakan dengan memasang rangka kerja dengan arahan di bawah:
composer create-project lithephp/lithephp project-name cd project-name
Ini mewujudkan struktur asas untuk projek anda dengan Lithe.
Langkah 2: Memasang CSRF Middleware
Perisian tengah CSRF membantu menjana dan mengesahkan token CSRF. Untuk memasangnya, jalankan arahan berikut dalam terminal dalam projek anda:
composer require lithemod/csrf
Langkah 3: Mengkonfigurasi CSRF Middleware
Sekarang, kami perlu memberitahu Lithe bahawa kami ingin menggunakan perisian tengah CSRF. Buka fail utama src/App.php dan tambah perisian tengah CSRF.
use Lithe\Middleware\Security\csrf; use function Lithe\Orbis\Http\Router\router; $app = new \Lithe\App; // Configure the CSRF middleware with automatic checking in the request body $app->use(csrf([ 'expire' => 600, // Token expiration after 10 minutes 'checkBody' => true, // Enables automatic checking in the body 'bodyMethods' => ['POST', 'PUT', 'DELETE'], // Defines the methods for checking CSRF in the body ])); $app->use(router(__DIR__ . '/routes/web')); $app->listen();
Dengan ini, perisian tengah CSRF aktif dalam aplikasi kami, dan setiap permintaan yang memerlukan perlindungan mesti menyertakan token yang sah.
Langkah 4: Menjana Token CSRF
Untuk menggunakan perlindungan CSRF, kami perlu menjana token unik dan memasukkannya ke dalam permintaan. Kami akan membuat laluan untuk menghantar borang yang menyertakan token CSRF secara automatik.
- Buat fail bernama src/routes/web.php, dan tambah laluan borang dengan medan untuk token CSRF.
use Lithe\Http\{Request, Response}; use function Lithe\Orbis\Http\Router\get; get('/form', function (Request $req, Response $res) { // Generate the CSRF token field $tokenField = $req->csrf->getTokenField(); // Send the HTML with the token included in the form return $res->send(""); });
- Laluan ini mencipta borang yang merangkumi medan token CSRF. Medan adalah wajib untuk Lithe menyemak kesahihan permintaan.
Langkah 5: Mengesahkan Token pada Bahagian Belakang
Apabila borang diserahkan, Lithe akan menyemak secara automatik sama ada token itu sah. Sekarang, mari buat laluan yang akan menerima dan memproses borang.
- Dalam fail yang sama src/routes/web.php, tambahkan laluan untuk memproses penyerahan borang.
composer create-project lithephp/lithephp project-name cd project-name
Jika token tidak sah atau tiada, Lithe akan menyekat permintaan secara automatik dan mengembalikan ralat.
Langkah 6: Menghantar Permintaan dengan Token CSRF
Pada bahagian hadapan, apabila anda perlu menghantar permintaan POST (atau kaedah pengubahsuaian data lain), adalah penting untuk memasukkan token CSRF dalam kandungan permintaan atau dalam pengepala, bergantung pada cara anda mengkonfigurasi perisian tengah anda.
Contoh dengan API Ambil JavaScript
Bagi mereka yang menggunakan JavaScript, berikut ialah contoh cara menghantar token dengan permintaan pengambilan:
composer require lithemod/csrf
Langkah 7: Menguji Perlindungan CSRF
- Akses laluan /form dalam penyemak imbas anda. Anda akan melihat borang dengan token CSRF disertakan.
- Isi medan dan serahkan borang.
- Jika semuanya berfungsi, anda akan melihat mesej kejayaan dengan data yang dihantar.
Ringkasan dan Pertimbangan Akhir
Dalam tutorial ini, kami belajar:
- Apakah CSRF dan sebab ia penting.
- Cara untuk menyediakan perisian tengah CSRF dalam Lithe.
- Cara menjana dan mengesahkan token CSRF pada bahagian belakang.
- Cara menghantar token CSRF dengan borang dan permintaan AJAX.
Dengan perlindungan ini dilaksanakan, anda menjadikan aplikasi anda lebih selamat daripada serangan CSRF, membantu melindungi integriti data pengguna anda.
Untuk maklumat lebih terperinci, lihat Dokumentasi Lithe rasmi.
Atas ialah kandungan terperinci Melindungi Aplikasi Anda dengan CSRF dalam Lithe. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

PHP kekal sebagai alat yang kuat dan digunakan secara meluas dalam pengaturcaraan moden, terutamanya dalam bidang pembangunan web. 1) PHP mudah digunakan dan diintegrasikan dengan lancar dengan pangkalan data, dan merupakan pilihan pertama bagi banyak pemaju. 2) Ia menyokong penjanaan kandungan dinamik dan pengaturcaraan berorientasikan objek, sesuai untuk membuat dan mengekalkan laman web dengan cepat. 3) Prestasi PHP dapat ditingkatkan dengan caching dan mengoptimumkan pertanyaan pangkalan data, dan komuniti yang luas dan ekosistem yang kaya menjadikannya masih penting dalam timbunan teknologi hari ini.

Dalam PHP, rujukan lemah dilaksanakan melalui kelas lemah dan tidak akan menghalang pemungut sampah daripada menebus objek. Rujukan lemah sesuai untuk senario seperti sistem caching dan pendengar acara. Harus diingat bahawa ia tidak dapat menjamin kelangsungan hidup objek dan pengumpulan sampah mungkin ditangguhkan.

Kaedah \ _ \ _ membolehkan objek dipanggil seperti fungsi. 1. Tentukan kaedah \ _ \ _ supaya objek boleh dipanggil. 2. Apabila menggunakan sintaks $ OBJ (...), PHP akan melaksanakan kaedah \ _ \ _ invoke. 3. Sesuai untuk senario seperti pembalakan dan kalkulator, meningkatkan fleksibiliti kod dan kebolehbacaan.

Serat diperkenalkan dalam Php8.1, meningkatkan keupayaan pemprosesan serentak. 1) Serat adalah model konkurensi ringan yang serupa dengan coroutine. 2) Mereka membenarkan pemaju mengawal aliran pelaksanaan tugas secara manual dan sesuai untuk mengendalikan tugas I/O-intensif. 3) Menggunakan serat boleh menulis kod yang lebih cekap dan responsif.

Komuniti PHP menyediakan sumber dan sokongan yang kaya untuk membantu pemaju berkembang. 1) Sumber termasuk dokumentasi rasmi, tutorial, blog dan projek sumber terbuka seperti Laravel dan Symfony. 2) Sokongan boleh didapati melalui saluran StackOverflow, Reddit dan Slack. 3) Trend pembangunan boleh dipelajari dengan mengikuti RFC. 4) Integrasi ke dalam masyarakat dapat dicapai melalui penyertaan aktif, sumbangan kepada kod dan perkongsian pembelajaran.

PHP dan Python masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1.Php sesuai untuk pembangunan web, dengan sintaks mudah dan kecekapan pelaksanaan yang tinggi. 2. Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan perpustakaan yang kaya.

PHP tidak mati, tetapi sentiasa menyesuaikan diri dan berkembang. 1) PHP telah menjalani beberapa lelaran versi sejak tahun 1994 untuk menyesuaikan diri dengan trend teknologi baru. 2) Ia kini digunakan secara meluas dalam e-dagang, sistem pengurusan kandungan dan bidang lain. 3) Php8 memperkenalkan pengkompil JIT dan fungsi lain untuk meningkatkan prestasi dan pemodenan. 4) Gunakan OPCACHE dan ikut piawaian PSR-12 untuk mengoptimumkan prestasi dan kualiti kod.

Masa depan PHP akan dicapai dengan menyesuaikan diri dengan trend teknologi baru dan memperkenalkan ciri -ciri inovatif: 1) menyesuaikan diri dengan pengkomputeran awan, kontena dan seni bina microservice, menyokong Docker dan Kubernetes; 2) memperkenalkan pengkompil JIT dan jenis penghitungan untuk meningkatkan prestasi dan kecekapan pemprosesan data; 3) Berterusan mengoptimumkan prestasi dan mempromosikan amalan terbaik.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.