Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Melindungi Aplikasi anda dengan CSRF pada Lithe

Melindungi Aplikasi anda dengan CSRF pada Lithe

Linda Hamilton
Linda Hamiltonasal
2024-11-10 06:38:02827semak imbas

Protegendo sua Aplicação com CSRF no Lithe

Dalam tutorial ini, kami akan mempelajari cara melaksanakan perlindungan CSRF (Cross-Site Request Forgery) dalam Lithe, untuk mengelakkan permintaan yang tidak diingini daripada dibuat dalam aplikasi anda. Panduan ini direka untuk pemula, jadi mari kita pergi dalam bahagian!


Apakah CSRF?

CSRF, atau Pemalsuan Permintaan Merentas Tapak, ialah sejenis serangan di mana pengguna ditipu untuk melakukan tindakan yang tidak dibenarkan pada tapak web yang mana mereka disahkan. Serangan ini berbahaya kerana penyerang boleh memanipulasi data atau mengakses kawasan larangan. Untuk mengelakkan ini, kami menambah lapisan keselamatan yang menghalang permintaan yang mencurigakan daripada diproses.


Struktur Tutorial

  1. Konfigurasikan Lithe
  2. Pasang CSRF Middleware
  3. Tambah Token CSRF di Bahagian Belakang
  4. Semak Token di Bahagian Belakang
  5. Hantar Token melalui Frontend
  6. Uji Perlindungan CSRF

Jom mulakan!


Langkah 1: Mengkonfigurasi Lithe

Jika anda belum mempunyai konfigurasi Lithe, mulakan dengan memasang rangka kerja dengan arahan di bawah:

composer create-project lithephp/lithephp nome-do-projeto
cd nome-do-projeto

Ini mewujudkan struktur asas untuk projek Lithe anda.


Langkah 2: Memasang CSRF Middleware

Perisian tengah CSRF membantu menjana dan mengesahkan token CSRF. Untuk memasang, 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;

// Configura o middleware CSRF com verificação automática no corpo da requisição
$app->use(csrf([
    'expire' => 600, // Expiração do token após 10 minutos
    'checkBody' => true, // Habilita a verificação automática no corpo
    'bodyMethods' => ['POST', 'PUT', 'DELETE'], // Define os métodos para verificar o CSRF no corpo
]));

$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 dalam permintaan. Mari buat laluan untuk menyerahkan borang yang menyertakan token CSRF secara automatik.

  1. Buat fail yang dipanggil 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) {
    // Gera o campo de token CSRF
    $tokenField = $req->csrf->getTokenField();

    // Envia o HTML com o token incluído no formulário
    return $res->send("
        <form method='POST' action='/submit'>
            $tokenField
            <input type='text' name='data' placeholder='Digite algo' required>
            <button type='submit'>Enviar</button>
        </form>
    ");
});
  1. Laluan ini mencipta borang yang merangkumi medan token CSRF. Medan adalah wajib untuk Lithe mengesahkan ketulenan 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.

  1. Dalam fail src/routes/web.php yang sama, tambahkan laluan untuk memproses penyerahan borang.
composer create-project lithephp/lithephp nome-do-projeto
cd nome-do-projeto

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 perubahan data lain), adalah penting untuk memasukkan token CSRF dalam badan permintaan atau 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

  1. Akses laluan /form dalam penyemak imbas. Anda akan melihat borang dengan token CSRF disertakan.
  2. Isi medan dan serahkan borang.
  3. Jika semuanya berfungsi, anda akan melihat mesej kejayaan dengan data yang dihantar.

Ringkasan dan Pertimbangan Akhir

Dalam tutorial ini kita belajar:

  • Apakah CSRF dan mengapa ia penting.
  • Cara mengkonfigurasi perisian tengah CSRF dalam Lithe.
  • Cara menjana dan mengesahkan token CSRF di bahagian belakang.
  • Cara menghantar token CSRF dengan borang dan permintaan AJAX.

Dengan perlindungan ini disediakan, anda menjadikan aplikasi anda lebih selamat daripada serangan CSRF, membantu melindungi integriti data pengguna anda.

Untuk maklumat lebih terperinci, lihat Dokumentasi Rasmi Lithe.

Atas ialah kandungan terperinci Melindungi Aplikasi anda dengan CSRF pada Lithe. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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