Mengatasi CSRF: Strategi Perlindungan PHP Foolproof

王林
Lepaskan: 2024-02-25 13:24:02
ke hadapan
1044 orang telah melayarinya

2.1 Menggunakan Token CSRF

Editor PHP Zimo membawakan anda strategi perlindungan PHP untuk mengatasi kesukaran CSRF. CSRF (pemalsuan permintaan merentas tapak) ialah kaedah serangan rangkaian biasa Untuk mencegah serangan sedemikian dengan berkesan, pembangun PHP perlu mengambil beberapa langkah, seperti menggunakan token CSRF, mengesahkan Perujuk HTTP, pengesahan berganda dan kaedah lain untuk memastikan. bahawa tapak web keselamatan Data. Artikel ini akan memperkenalkan strategi perlindungan ini secara terperinci untuk membantu anda mewujudkan sistem perlindungan PHP yang mudah untuk melindungi tapak web anda daripada ancaman serangan CSRF.

2.2 Gunakan Pengepala Perujuk

Pengepala Perujuk ialah pengepala permintaan Http yang mengandungi URL sumber permintaan. Pelayan boleh menyemak Pengepala Perujuk untuk menentukan sama ada permintaan itu datang daripada sumber yang sah. Jika Pengepala Perujuk tidak wujud atau menunjuk kepada sumber yang tidak sah, ia dianggap sebagai serangan CSRF dan permintaan akan ditolak.

2.3 Menggunakan Kuki SameSite

SameSite Cookie ialah atribut kuki baharu yang boleh digunakan untuk mengehadkan skop kuki. Kuki SameSite boleh ditetapkan kepada "Strict", "Lax", atau "None". Kuki akan dihantar pada permintaan merentas tapak hanya jika kuki SameSite ditetapkan kepada "Ketat".

2.4 Menggunakan mod token penyerahan dwi

Mod token penyerahan berganda ialah kaedah klasik untuk mencegah serangan CSRF. Dalam mod token dwi-serahkan, pelayan menjana token rawak dengan setiap permintaan dan menyimpan token dalam medan borang tersembunyi. Apabila pengguna menyerahkan borang, pelayan mengesahkan sama ada token dalam medan borang tersembunyi adalah konsisten dengan token dalam sesi Jika ia tidak konsisten, ia menganggap serangan CSRF dan menolak permintaan.

3. Kod demo

Berikut ialah sekeping kod PHP yang menggunakan Token CSRF untuk menghalang serangan CSRF:

<?php
// 生成 CSRF Token
$csrf_token = bin2hex(random_bytes(32));

// 将 CSRF Token 存储在会话中
$_SESSioN["csrf_token"] = $csrf_token;
?>

<fORM action="submit.php" method="post">
<input type="hidden" name="csrf_token" value="<?php echo $csrf_token; ?>">
<!-- 表单其他字段 -->
<input type="submit" value="提交">
</form>
Salin selepas log masuk

Dalam fail submit.php, Token CSRF boleh disahkan seperti berikut:

<?php
// 获取请求中的 CSRF Token
$csrf_token = $_POST["csrf_token"];

// 获取会话中的 CSRF Token
$session_csrf_token = $_SESSION["csrf_token"];

// 比较两个 CSRF Token
if ($csrf_token !== $session_csrf_token) {
// 认为是 CSRF 攻击,拒绝请求
die("CSRF attack detected!");
}

// 处理表单提交
// ...
Salin selepas log masuk

4 Dengan menggunakan Token CSRF, Pengepala Perujuk, Kuki SameSite atau mod token penyerahan dwi, ​​PHP

pembangun

boleh menghalang serangan CSRF dengan berkesan dan melindungi keselamatan aplikasi WEB.

Atas ialah kandungan terperinci Mengatasi CSRF: Strategi Perlindungan PHP Foolproof. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:lsjlt.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!