Rumah pembangunan bahagian belakang tutorial php Amalan pengaturcaraan PHP untuk mengelakkan serangan pemalsuan permintaan merentas tapak

Amalan pengaturcaraan PHP untuk mengelakkan serangan pemalsuan permintaan merentas tapak

Jul 05, 2023 pm 01:40 PM
mengesahkan token csrf

Amalan pengaturcaraan PHP untuk mencegah serangan pemalsuan permintaan merentas tapak

Dengan perkembangan Internet, aplikasi web menjadi semakin popular. Walau bagaimanapun, aplikasi web juga menghadapi pelbagai serangan rangkaian, salah satunya adalah serangan Pemalsuan Permintaan Silang Tapak (CSRF). Dalam artikel ini, kami akan meneroka cara menggunakan teknik pengaturcaraan PHP untuk menghalang serangan CSRF dan menyediakan contoh kod yang berkaitan.

Prinsip serangan CSRF ialah penyerang menggunakan identiti log masuk pengguna untuk menghantar permintaan yang boleh melakukan operasi berniat jahat ke tapak web sasaran tanpa pengetahuan pengguna. Tujuannya adalah untuk mencapai tujuan haram penyerang, seperti membuat perubahan pada akaun pengguna, memadamkan maklumat sensitif, dsb.

Untuk mengelakkan serangan CSRF, kami boleh mengamalkan amalan pengaturcaraan berikut:

  1. Sahkan sumber permintaan: Mula-mula, tambah medan tersembunyi pada borang tapak web yang mengandungi token yang dijana secara rawak. Apabila pengguna menyerahkan borang, pelayan menyemak untuk melihat sama ada token itu wujud dan sah. Dengan cara ini, jika sumber permintaan tidak boleh dipercayai, pelayan akan menolak untuk melaksanakan permintaan tersebut. Berikut ialah contoh kod yang melaksanakan fungsi ini:
<?php
// 生成 CSRF 令牌
$token = bin2hex(random_bytes(32));
$_SESSION['csrf_token'] = $token;

// 在表单中添加隐藏域
echo '<input type="hidden" name="csrf_token" value="' . $token . '">';

// 验证 CSRF 令牌
if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    die('Invalid CSRF token');
}
// 继续处理请求
// ...
?>
Salin selepas log masuk
  1. Tetapkan atribut Kuki SameSite yang selamat: Untuk mengelakkan permintaan merentas tapak, kami boleh menetapkan atribut Kuki SameSite kepada "ketat" atau "longgar". Ini memastikan bahawa kuki hanya boleh dihantar dalam konteks yang sama seperti tapak asalnya. Berikut ialah contoh kod untuk menetapkan sifat SameSite:
<?php
// 设置 Cookie 的 SameSite 属性
session_set_cookie_params(['samesite' => 'strict']);
session_start();
?>
Salin selepas log masuk
  1. Tambah mekanisme kod pengesahan: Selain kaedah di atas, kami juga boleh menambah mekanisme kod pengesahan untuk meningkatkan keselamatan. Apabila pengguna melakukan operasi sensitif (seperti menukar kata laluan), pengguna dikehendaki memasukkan kod pengesahan untuk memastikan bahawa pengguna adalah pemula operasi sebenar.

Untuk melindungi aplikasi web daripada serangan CSRF, kami mesti mengambil beberapa langkah, termasuk mengesahkan sumber permintaan, menetapkan atribut Kuki SameSite yang selamat dan menggunakan mekanisme kod pengesahan. Amalan pengaturcaraan ini boleh mengurangkan risiko serangan CSRF dan meningkatkan keselamatan aplikasi web.

Walau bagaimanapun, perlu diingat bahawa kaedah ini tidak benar-benar selamat. Penggodam juga sentiasa membangunkan teknik serangan baharu. Oleh itu, kami perlu memberi perhatian yang teliti kepada trend keselamatan rangkaian dan sentiasa mengemas kini serta menambah baik strategi perlindungan kami.

Ringkasnya, mencegah serangan CSRF secara pengaturcaraan adalah bahagian penting dalam mengamankan aplikasi web. Dengan mengesahkan sumber permintaan, menetapkan atribut Kuki SameSite yang selamat dan menambah mekanisme kod pengesahan, kami boleh mengurangkan risiko serangan CSRF dengan banyak. Saya harap artikel ini dapat membantu pembaca memahami dan menggunakan langkah perlindungan ini.

Rujukan:

  • OWASP CSRF Prevention Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html
  • ://www.php pengurusan sesi:net.net features.sessions.php

Atas ialah kandungan terperinci Amalan pengaturcaraan PHP untuk mengelakkan serangan pemalsuan permintaan merentas tapak. 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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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)

Bagaimana untuk mengesahkan tandatangan dalam PDF Bagaimana untuk mengesahkan tandatangan dalam PDF Feb 18, 2024 pm 05:33 PM

Kami biasanya menerima fail PDF daripada kerajaan atau agensi lain, sesetengahnya dengan tandatangan digital. Selepas mengesahkan tandatangan, kami melihat mesej SignatureValid dan tanda semak hijau. Sekiranya tandatangan tidak disahkan, kesahihannya tidak diketahui. Mengesahkan tandatangan adalah penting, mari lihat cara melakukannya dalam PDF. Cara Mengesahkan Tandatangan dalam PDF Mengesahkan tandatangan dalam format PDF menjadikannya lebih boleh dipercayai dan dokumen lebih cenderung untuk diterima. Anda boleh mengesahkan tandatangan dalam dokumen PDF dengan cara berikut. Buka PDF dalam Adobe Reader Klik kanan tandatangan dan pilih Show Signature Properties Klik butang Tunjukkan Sijil Penandatangan Tambah tandatangan pada senarai Sijil Dipercayai daripada tab Amanah Klik Sahkan Tandatangan untuk melengkapkan pengesahan Biarkan

Kaedah terperinci untuk menyahsekat menggunakan pengesahan bantuan rakan WeChat Kaedah terperinci untuk menyahsekat menggunakan pengesahan bantuan rakan WeChat Mar 25, 2024 pm 01:26 PM

1. Selepas membuka WeChat, klik ikon carian, masukkan pasukan WeChat, dan klik perkhidmatan di bawah untuk masuk. 2. Selepas memasukkan, klik pilihan alat layan diri di sudut kiri bawah. 3. Selepas mengklik, dalam pilihan di atas, klik pilihan untuk menyahsekat/merayu untuk pengesahan tambahan.

Perkara yang perlu dilakukan jika token log masuk tidak sah Perkara yang perlu dilakukan jika token log masuk tidak sah Sep 14, 2023 am 11:33 AM

Penyelesaian kepada token log masuk yang tidak sah termasuk menyemak sama ada token telah tamat tempoh, menyemak sama ada token itu betul, menyemak sama ada token telah diganggu, menyemak sama ada token sepadan dengan pengguna, mengosongkan cache atau kuki, menyemak sambungan rangkaian dan status pelayan , log masuk semula atau meminta token baharu Hubungi sokongan teknikal atau pembangun, dsb. Pengenalan terperinci: 1. Semak sama ada Token telah tamat tempoh Token log masuk biasanya mempunyai tempoh sah yang ditetapkan Setelah tempoh sah melebihi, ia akan dianggap tidak sah, dsb.

Bagaimana untuk menyelesaikan masalah token log masuk tidak sah Bagaimana untuk menyelesaikan masalah token log masuk tidak sah Sep 14, 2023 am 10:57 AM

Masalah token log masuk tidak sah boleh diselesaikan dengan menyemak sambungan rangkaian, menyemak tempoh sah token, mengosongkan cache dan kuki, menyemak status log masuk, menghubungi pembangun aplikasi dan mengukuhkan keselamatan akaun. Pengenalan terperinci: 1. Semak sambungan rangkaian, sambung semula ke rangkaian atau tukar persekitaran rangkaian 2. Semak tempoh sah token, dapatkan token baharu, atau hubungi pembangun aplikasi 3. Kosongkan cache dan kuki, kosongkan penyemak imbas; cache dan Cookie, dan kemudian log masuk ke aplikasi sekali lagi 4. Semak status log masuk.

Bagaimana untuk mengesahkan sama ada input adalah aksara lebar penuh dalam golang Bagaimana untuk mengesahkan sama ada input adalah aksara lebar penuh dalam golang Jun 25, 2023 pm 02:03 PM

Dalam golang, pengekodan Unicode dan jenis rune diperlukan untuk mengesahkan sama ada input ialah aksara lebar penuh. Pengekodan Unikod ialah standard pengekodan aksara yang memberikan titik kod angka yang unik kepada setiap aksara dalam set aksara, yang merangkumi aksara lebar penuh dan aksara separuh lebar. Jenis rune ialah jenis yang digunakan untuk mewakili aksara Unicode dalam golang. Langkah pertama ialah menukar input menjadi kepingan jenis rune. Ini boleh ditukar dengan menggunakan jenis []rune golang, mis.

Bagaimana untuk mengesahkan kod IFSC menggunakan ungkapan biasa? Bagaimana untuk mengesahkan kod IFSC menggunakan ungkapan biasa? Aug 26, 2023 pm 10:17 PM

Kod Sistem Kewangan India ialah singkatan. Cawangan bank India yang mengambil bahagian dalam sistem pemindahan dana elektronik dikenal pasti melalui kod khas 11 aksara. Reserve Bank of India menggunakan kod ini dalam transaksi internet untuk memindahkan dana antara bank. Kod IFSC terbahagi kepada dua bahagian. Bank dikenal pasti dengan empat aksara pertama, manakala cawangan dikenal pasti oleh enam aksara terakhir. NEFT (Pemindahan Dana Elektronik Nasional), RTGS (Penyelesaian Kasar Masa Nyata) dan IMPS (Perkhidmatan Pembayaran Segera) ialah beberapa transaksi elektronik yang memerlukan kod IFSC. Kaedah Beberapa cara biasa untuk mengesahkan kod IFSC menggunakan ungkapan biasa ialah: Semak sama ada panjangnya betul. Semak empat aksara pertama. Semak aksara kelima.Che

Bagaimana untuk mengesahkan sama ada input adalah huruf besar dalam golang Bagaimana untuk mengesahkan sama ada input adalah huruf besar dalam golang Jun 24, 2023 am 09:06 AM

Golang ialah bahasa pengaturcaraan moden berprestasi tinggi yang sering melibatkan pemprosesan rentetan dalam pembangunan harian. Antaranya, mengesahkan sama ada input dalam huruf besar adalah keperluan biasa. Artikel ini akan memperkenalkan cara untuk mengesahkan sama ada input adalah huruf besar dalam Golang. Kaedah 1: Gunakan pakej unicode Pakej unicode dalam Golang menyediakan satu siri fungsi untuk menentukan jenis pengekodan aksara. Untuk huruf besar, julat pengekodan yang sepadan ialah 65-90 (perpuluhan), jadi kita boleh menggunakan unicod

Ciri baharu dalam PHP 8: Ditambah pengesahan dan tandatangan Ciri baharu dalam PHP 8: Ditambah pengesahan dan tandatangan Mar 27, 2024 am 08:21 AM

PHP8 ialah versi PHP terkini, membawa lebih banyak kemudahan dan fungsi kepada pengaturcara. Versi ini mempunyai tumpuan khusus pada keselamatan dan prestasi, dan salah satu ciri baharu yang perlu diberi perhatian ialah penambahan keupayaan pengesahan dan tandatangan. Dalam artikel ini, kita akan melihat dengan lebih dekat ciri baharu ini dan kegunaannya. Pengesahan dan tandatangan adalah konsep keselamatan yang sangat penting dalam sains komputer. Ia sering digunakan untuk memastikan bahawa data yang dihantar adalah lengkap dan sahih. Pengesahan dan tandatangan menjadi lebih penting apabila berurusan dengan transaksi dalam talian dan maklumat sensitif kerana jika seseorang dapat mengganggu data, ia berpotensi

See all articles