Rumah > Artikel > hujung hadapan web > Ringkasan kaedah untuk menghalang pengguna daripada menghantar borang berulang kali_HTML/Xhtml_Pengeluaran halaman web
Penyerahan borang pendua ialah masalah paling biasa dalam aplikasi web berbilang pengguna dan menyebabkan banyak masalah. Terdapat banyak senario aplikasi yang akan menghadapi masalah penyerahan pendua, seperti:
Klik butang hantar dua kali. Klik butang muat semula. Gunakan butang belakang penyemak imbas untuk mengulangi tindakan sebelumnya, mengakibatkan penyerahan borang berulang. Hantar borang berulang kali menggunakan sejarah penyemak imbas. Permintaan HTTP pendua daripada penyemak imbas.
Beberapa cara untuk mengelakkan penyerahan borang berulang
1. Lumpuhkan butang hantar . Gunakan Javascript untuk melumpuhkan butang hantar selepas borang diserahkan. Pendekatan ini menghalang pengguna yang tidak sabar daripada mengklik butang beberapa kali. Tetapi terdapat masalah Jika pelanggan melumpuhkan Javascript, kaedah ini akan menjadi tidak sah.
Saya berkata dalam artikel saya sebelum ini bahawa menggunakan beberapa pemalam Jquery berfungsi dengan baik.
2.Siar/Ubah hala/Dapatkan mod. Melaksanakan pengalihan halaman selepas penyerahan adalah corak yang dipanggil Post-Redirect-Get (PRG). Ringkasnya, apabila pengguna menyerahkan borang, anda melakukan ubah hala sisi klien dan pergi ke halaman maklumat kejayaan penyerahan.
Ini boleh mengelakkan penyerahan berulang yang disebabkan oleh pengguna menekan F5, dan tidak akan ada amaran tentang penyerahan berulang borang penyemak imbas Ia juga boleh menghapuskan masalah yang sama yang disebabkan oleh menekan butang ke hadapan dan ke belakang penyemak imbas.
3. Simpan bendera khas dalam sesi. Apabila halaman borang diminta, rentetan aksara khas dijana, disimpan dalam sesi dan diletakkan dalam medan tersembunyi borang. Apabila menerima dan memproses data borang, semak sama ada rentetan pengenalan wujud, segera padamkannya daripada sesi, dan kemudian proses data seperti biasa.
Jika didapati tiada rentetan bendera yang sah dalam penyerahan borang, ini bermakna borang telah pun diserahkan dan penyerahan ini diabaikan.
Ini memberikan aplikasi web anda perlindungan XSRF yang lebih maju.
4. Tambahkan kekangan dalam pangkalan data. Tambahkan kekangan unik atau cipta indeks unik dalam pangkalan data untuk mengelakkan data pendua. Ini adalah cara paling berkesan untuk mengelakkan penyerahan data pendua.
Di atas adalah pengenalan 4 kaedah ini Jika anda mempunyai penyelesaian yang lebih baik, sila maklumkan kepada kami Artikel ini akan terus dikemas kini.