Rumah pembangunan bahagian belakang tutorial php Petua perlindungan borang PHP: Bagaimana untuk mengelakkan penyerahan borang berulang

Petua perlindungan borang PHP: Bagaimana untuk mengelakkan penyerahan borang berulang

Jun 24, 2023 am 11:50 AM
borang php Kemahiran melindungi Penyerahan pendua

Apabila menggunakan borang PHP untuk penyerahan data, masalah penyerahan borang berulang sering berlaku. Ini boleh menyebabkan data tidak tepat atau, lebih teruk, ranap sistem. Oleh itu, adalah sangat penting untuk memahami cara mengelakkan penyerahan pendua. Dalam artikel ini, saya akan memperkenalkan beberapa teknik perlindungan borang PHP untuk membantu anda mencegah masalah penyerahan borang berulang dengan berkesan.

1. Tambahkan token pada borang

Menambah token pada borang ialah cara biasa untuk mengelakkan penyerahan berulang. Kaedah ini berfungsi dengan menambah medan tersembunyi pada borang yang mengandungi nilai rawak unik. Apabila borang diserahkan, kod PHP akan menyemak sama ada nilai ini sepadan dengan nilai yang disimpan pada pelayan. Jika tidak sepadan, ini bermakna borang telah dihantar berulang kali dan data tidak akan diproses. Berikut ialah contoh asas penggunaan token:

<?php
  session_start();
  if ($_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['token'])) {
    $token = $_POST['token'];
    if ($_SESSION['token'] === $token) {
      //处理表单数据
      //...
      unset($_SESSION['token']);
    } else {
      echo '表单已提交!';
    }
  } else {
    $token = md5(uniqid(rand(), true));
    $_SESSION['token'] = $token;
?>
  <form method="post">
    <input type="hidden" name="token" value="<?php echo $token; ?>" />
    <!--其他表单元素-->
    <button type="submit">提交</button>
  </form>
<?php } ?>
Salin selepas log masuk

Dalam contoh ini, kami mula-mula menyemak sama ada permintaan itu adalah POST dan jika ya, semak sama ada nilai token dalam borang sepadan. Jika token sepadan, proses data borang. Selepas memproses data, kami menggunakan fungsi tidak ditetapkan untuk mengalih keluar token daripada SESI kerana token ini tidak diperlukan lagi. Jika token tidak sepadan, borang telah dihantar dua kali dan data borang tidak akan diproses. Jika permintaan itu bukan POST, kami menjana token baharu, menyimpannya dalam SESI dan menambahkannya pada borang.

2. Gunakan ubah hala

Selepas menyerahkan borang, jika anda masih menggunakan URL yang sama, ia akan menyebabkan borang dihantar berulang kali. Untuk mengelakkan ini, anda boleh menggunakan ubah hala. Teknik ini melibatkan halaman perantara yang mengubah hala pengguna ke halaman lain selepas borang diserahkan, bukannya halaman borang asal. Berikut ialah contoh penggunaan ubah hala untuk mengelakkan penyerahan borang berulang:

<?php
  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    //处理表单数据
    //...
    header('Location: success.php');
    exit;
  }
?>
Salin selepas log masuk

Dalam contoh ini, kami menggunakan fungsi pengepala untuk mengubah hala pengguna ke halaman success.php selepas memproses data borang. Halaman ini ialah halaman yang dipaparkan selepas penyerahan berjaya Ia tidak mengandungi sebarang borang, jadi pengguna tidak boleh menghantar semula borang menggunakan butang "kembali" pelayar atau memuatkan semula halaman.

3. Lumpuhkan cache penyemak imbas

Cache borang dalam penyemak imbas, yang boleh menyebabkan borang diserahkan berulang kali. Oleh kerana penyemak imbas boleh cache halaman Web tapak, borang mungkin diserahkan semula apabila pengguna mengklik butang Kembali penyemak imbas. Untuk mengelakkan ini, anda perlu melumpuhkan cache penyemak imbas. Berikut ialah contoh asas untuk melumpuhkan cache penyemak imbas:

<?php
  header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");         // Date in the past
  header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
  header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Pragma: no-cache");                                // HTTP/1.0
?>
Salin selepas log masuk

Dalam contoh ini, kami menggunakan beberapa pengepala HTTP untuk memaklumkan penyemak imbas supaya tidak membuat cache halaman semasa. Ini termasuk pengepala "Tamat tempoh" untuk tarikh pada masa lalu dan beberapa pengepala lain tentang cara mengendalikan halaman.

Kesimpulan

Apabila menggunakan borang PHP, adalah sangat penting untuk mengelakkan penyerahan berulang. Kaedah di atas menerangkan beberapa teknik berkesan yang boleh membantu anda mengelakkan penyerahan borang berulang dan melindungi keselamatan data anda. Jika anda ingin mengetahui lebih lanjut tentang pertahanan borang PHP, lihat dokumentasi PHP atau rujuk blog dan artikel daripada pembangun PHP lain.

Atas ialah kandungan terperinci Petua perlindungan borang PHP: Bagaimana untuk mengelakkan penyerahan borang berulang. 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

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Cara menggunakan pengesahan dua faktor dalam borang PHP untuk meningkatkan keselamatan Cara menggunakan pengesahan dua faktor dalam borang PHP untuk meningkatkan keselamatan Jun 24, 2023 am 09:41 AM

Kini, dalam era pendigitalan dan rangkaian, keselamatan telah menjadi salah satu faktor penting yang tidak boleh diabaikan dalam dunia Internet. Terutamanya dalam senario perniagaan dengan sensitiviti data yang tinggi, cara untuk meningkatkan keselamatan tapak web, aplikasi dan data pengguna adalah amat penting. Menggunakan pengesahan dua langkah dalam bentuk PHP untuk meningkatkan keselamatan ialah penyelesaian yang boleh dilaksanakan. Pengesahan Dua Faktor (pendek kata 2FA), juga dikenali sebagai pengesahan berganda dan pengesahan berbilang faktor, merujuk kepada proses apabila pengguna melengkapkan kata laluan akaun biasa.

Petua perlindungan borang PHP: Bagaimana untuk mengelakkan penyerahan borang berulang Petua perlindungan borang PHP: Bagaimana untuk mengelakkan penyerahan borang berulang Jun 24, 2023 am 11:50 AM

Apabila menggunakan borang PHP untuk penyerahan data, masalah penyerahan borang berulang sering berlaku. Ini boleh menyebabkan data tidak tepat atau, lebih teruk, ranap sistem. Oleh itu, adalah sangat penting untuk memahami cara mengelakkan penyerahan pendua. Dalam artikel ini, saya akan memperkenalkan beberapa teknik perlindungan borang PHP untuk membantu anda mencegah masalah penyerahan borang berulang dengan berkesan. 1. Tambahkan token pada borang Menambah token pada borang ialah cara biasa untuk mengelakkan penyerahan berulang. Prinsip kaedah ini adalah untuk menambah medan tersembunyi pada borang, yang mengandungi

Nota Pembangunan Laravel: Kaedah dan Teknik untuk Mencegah Serangan Skrip Merentas Tapak Nota Pembangunan Laravel: Kaedah dan Teknik untuk Mencegah Serangan Skrip Merentas Tapak Nov 22, 2023 pm 04:51 PM

Laravel ialah rangka kerja PHP popular yang menyediakan banyak ciri dan alatan berguna yang menjadikan pembangunan aplikasi web lebih mudah dan pantas. Walau bagaimanapun, apabila aplikasi web terus berkembang dalam kerumitan, isu keselamatan menjadi semakin penting. Salah satu kelemahan keselamatan yang paling biasa dan berbahaya ialah skrip rentas tapak (XSS). Dalam artikel ini, kami akan membincangkan kaedah dan teknik untuk menghalang serangan skrip merentas tapak untuk melindungi aplikasi Laravel anda daripada serangan XSS. Apakah serangan skrip merentas tapak?

Cara menggunakan borang PHP untuk menghalang serangan CSRF Cara menggunakan borang PHP untuk menghalang serangan CSRF Jun 24, 2023 am 11:53 AM

Dengan perkembangan teknologi rangkaian yang berterusan, isu keselamatan semakin menjadi isu yang tidak boleh diabaikan dalam pembangunan aplikasi rangkaian. Antaranya, serangan pemalsuan permintaan merentas tapak (CSRF) adalah kaedah serangan biasa Tujuan utamanya adalah untuk menggunakan pengguna untuk memulakan permintaan yang tidak sah ke latar belakang dengan membenarkan pengguna memulakan permintaan jahat dalam penyemak imbas apabila pengguna. dilog masuk ke tapak web Ini membawa kepada kelemahan keselamatan bahagian pelayan. Dalam aplikasi PHP, menggunakan pengesahan borang adalah cara yang berkesan untuk mencegah serangan CSRF. Tambahkan CSRFToken untuk mengesahkan serangan CSRF

Cara mengendalikan reka bentuk mudah alih dan responsif dalam bentuk PHP Cara mengendalikan reka bentuk mudah alih dan responsif dalam bentuk PHP Aug 10, 2023 am 11:51 AM

Cara menangani reka bentuk mudah alih dan responsif dalam bentuk PHP Dengan populariti dan kekerapan peranti mudah alih yang semakin meningkat, dan semakin ramai pengguna menggunakan peranti mudah alih untuk mengakses tapak web, menyesuaikan diri dengan mudah alih telah menjadi isu penting. Apabila berurusan dengan borang PHP, kita perlu mempertimbangkan cara untuk mencapai antara muka mesra mudah alih dan reka bentuk responsif. Artikel ini menerangkan cara mengendalikan reka bentuk mudah alih dan responsif dalam bentuk PHP dan menyediakan contoh kod. 1. Borang responsif menggunakan HTML5 HTML5 menyediakan beberapa ciri baharu yang boleh melaksanakan borang responsif dengan mudah.

Cara mengendalikan input berbilang bahasa dalam borang PHP Cara mengendalikan input berbilang bahasa dalam borang PHP Aug 10, 2023 pm 09:00 PM

Cara mengendalikan input berbilang bahasa dalam bentuk PHP Dengan perkembangan globalisasi, sokongan berbilang bahasa untuk laman web telah menjadi ciri yang diperlukan. Dalam pembangunan PHP, cara mengendalikan input berbilang bahasa supaya pengguna boleh memasukkan data dalam bahasa yang berbeza dalam bentuk dan menyimpan serta memaparkan data dengan betul merupakan isu penting yang perlu diselesaikan oleh pembangun. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mengendalikan input berbilang bahasa dan memberikan contoh kod yang sepadan. 1. Tetapkan tetapan bahasa laman web Dalam kod PHP, kita boleh menggunakan setlocale

Bentuk teknik autolengkap dalam PHP Bentuk teknik autolengkap dalam PHP May 24, 2023 am 09:31 AM

Dengan perkembangan Internet yang berterusan, borang telah menjadi salah satu fungsi yang digunakan di laman web harian kami. Mendapatkan pengguna untuk mengisi borang sudah pasti tugas yang membosankan, jadi anda perlu menggunakan beberapa helah untuk memudahkan proses. Artikel ini akan memperkenalkan teknik untuk melaksanakan autoisi borang dalam PHP. 1. Gunakan nilai lalai Apabila menetapkan nilai lalai borang, anda boleh menggunakan atribut "nilai" dalam teg borang untuk menentukannya. Berikut ialah contoh: &lt;inputtype="text"name=&q

Cara menambah rekod operasi pengguna pada borang PHP untuk meningkatkan keselamatan Cara menambah rekod operasi pengguna pada borang PHP untuk meningkatkan keselamatan Jun 24, 2023 am 09:13 AM

Dengan perkembangan pesat teknologi Internet, semakin banyak laman web menggunakan borang PHP untuk mengumpul maklumat pengguna. Walau bagaimanapun, risiko yang datang dengannya semakin tinggi dan lebih tinggi, kerana penggodam mungkin menggunakan borang tersebut untuk menangkap maklumat peribadi pengguna atau melakukan serangan berniat jahat. Untuk mengelakkan risiko ini, kami perlu menambah rekod operasi pengguna pada borang PHP untuk meningkatkan keselamatan. 1. Apakah rekod operasi pengguna? Rekod operasi pengguna ialah rekod semua operasi yang dilakukan oleh setiap pengguna semasa menggunakan sistem, termasuk log masuk, mendaftar, mengisi borang, menghantar borang, dll. Rekod ini boleh digunakan untuk mengesan

See all articles