Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mempertahankan daripada serangan keselamatan pada rangka kerja PHP?
Serangan keselamatan rangka kerja PHP biasa termasuk XSS, suntikan SQL, CSRF, kelemahan muat naik fail dan RCE. Langkah-langkah pertahanan termasuk: mengesahkan input; menghalang serangan CSRF;
Cara mempertahankan daripada serangan keselamatan pada rangka kerja PHP
Rangka kerja PHP digunakan secara meluas untuk membina tapak web dinamik, tetapi ia juga terdedah kepada pelbagai serangan keselamatan. Untuk melindungi aplikasi anda, adalah penting untuk memahami serangan ini dan mengambil langkah berjaga-jaga yang sewajarnya.
Pengesahan input menghapuskan keupayaan penyerang untuk memasukkan aksara atau kod yang berpotensi berbahaya.
<?php // 使用 PHP 内置函数过滤用户输入 $sanitized_input = filter_input(INPUT_POST, 'input_field', FILTER_SANITIZE_STRING); ?>
Menggunakan pernyataan yang disediakan menghalang serangan suntikan SQL kerana ia secara automatik melepaskan input pengguna.
<?php // 准备并执行带有占位符的 SQL 查询 $stmt = $conn->prepare("SELECT * FROM users WHERE username = ?"); $stmt->bind_param("s", $username); $stmt->execute(); ?>
Menggunakan token anti-CSRF menghalang serangan CSRF kerana ia memerlukan setiap permintaan untuk disahkan dalam aplikasi.
<?php // 在表单中添加一个隐藏的反 CSRF 令牌 echo '<input type="hidden" name="csrf_token" value="' . $csrf_token . '">'; // 在服务器端验证反 CSRF 令牌 if (!isset($_POST['csrf_token']) || $_POST['csrf_token'] != $csrf_token) { die("Invalid CSRF token"); } ?>
Menghadkan saiz, jenis dan sambungan fail boleh membantu menghalang kerentanan muat naik fail.
<?php // 定义允许的文件类型 $allowed_extensions = ['jpg', 'png', 'pdf']; // 检查文件大小和扩展名 if ($_FILES['file']['size'] > 1000000 || !in_array(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION), $allowed_extensions)) { die("Invalid file"); } ?>
Penjual rangka kerja kerap mengeluarkan patch untuk membetulkan kelemahan. Adalah penting untuk memastikan versi rangka kerja anda dikemas kini.
composer update
Anda boleh menghalang serangan skrip merentas tapak (XSS) dengan menggunakan langkah berjaga-jaga (seperti menapis input, pernyataan yang disediakan) dalam coretan kod berikut:
<?php // 过滤用户输入 $comment = filter_input(INPUT_POST, 'comment', FILTER_SANITIZE_STRING); // 使用准备好的语句插入评论 $stmt = $conn->prepare("INSERT INTO comments (comment) VALUES (?)"); $stmt->bind_param("s", $comment); $stmt->execute(); ?>
Mengikut langkah ini akan membantu melindungi aplikasi Rangka Kerja PHP anda dilindungi daripada serangan keselamatan.
Atas ialah kandungan terperinci Bagaimana untuk mempertahankan daripada serangan keselamatan pada rangka kerja PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!