Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Corak Post-Redirect-Get (PRG) PHP Menghalang Pertindihan Data dan Serangan CSRF?

Bagaimanakah Corak Post-Redirect-Get (PRG) PHP Menghalang Pertindihan Data dan Serangan CSRF?

Patricia Arquette
Lepaskan: 2024-12-17 04:50:25
asal
944 orang telah melayarinya

How Does PHP's Post-Redirect-Get (PRG) Pattern Prevent Data Duplication and CSRF Attacks?

Contoh Kod Post-Redirect-Get (PRG) PHP

Apabila melaksanakan corak PRG dalam PHP, adalah penting untuk mengikuti langkah yang betul untuk memastikan perlindungan terhadap isu muat semula halaman dan butang belakang. Mari kita terokai pelaksanaan asas:

Dalam kod anda:

  1. Borang diserahkan kepada skrip pengesahan (validate.php).
  2. validate.php mengesahkan input dan sama ada menyimpannya dalam pangkalan data atau menjana mesej ralat yang sesuai.
  3. HTML yang dijana (halaman pengesahan atau halaman ralat) ialah disimpan dalam pembolehubah $_SESSION.
  4. validate.php kemudian mengubah hala pengguna ke halaman submitted.php atau invalid_input.php menggunakan pengepala('Lokasi: ').
  5. Halaman sasaran memaparkan HTML yang disimpan dalam pembolehubah $_SESSION.

Pendekatan ini menyediakan cara yang mudah dan penyelesaian yang berkesan terhadap serangan CSRF dan menghalang penyerahan semula yang tidak diingini atau pertindihan data.

Senario PRG Paling Mudah

Untuk pelaksanaan PRG yang dipermudahkan, anda boleh menggunakan coretan kod berikut:

if ($_POST) {
    // Validate the input
    
    if (/* input is OK */) {
        // Execute code (database updates, etc.)
        
        // Redirect to the same page
        header("Location: {$_SERVER['REQUEST_URI']}", true, 303);
        exit();
    }
}
Salin selepas log masuk

Ingat untuk menggunakan REQUEST_URI dan bukannya PHP_SELF untuk keserasian dengan sistem dan rangka kerja CMS di mana PHP_SELF boleh mengubah hala ke skrip lain (cth., index.php).

Atas ialah kandungan terperinci Bagaimanakah Corak Post-Redirect-Get (PRG) PHP Menghalang Pertindihan Data dan Serangan CSRF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan