Dalam pengaturcaraan PHP, memastikan keselamatan kod anda adalah penting. Fungsi sangat terdedah kepada kerentanan keselamatan, jadi penting untuk memahami cara mengesan dan membetulkan kelemahan ini.
mysqli_prepare
dan mysqli_bind_param
. mysqli_prepare
和 mysqli_bind_param
等函数。htmlspecialchars()
或 htmlentities()
函数来转义 HTML 特殊字符。filter_var()
和 filter_input()
函数来验证用户输入。考虑以下代码:
$query = "SELECT * FROM users WHERE username='" . $_POST['username'] . "'"; $result = mysqli_query($mysqli, $query);
此代码容易受到 SQL 注入,因为用户输入 $_POST['username']
Escape aksara khas: Gunakan fungsi htmlspecialchars()
atau htmlentities()
untuk melepaskan aksara khas HTML.
Sahkan input pengguna:
Gunakan fungsifilter_var()
dan filter_input()
untuk mengesahkan input pengguna. 🎜🎜🎜Gunakan senarai putih: 🎜Hanya benarkan nilai tertentu sebagai input. 🎜🎜🎜Akses Terhad: 🎜Hadkan akses kepada fungsi sensitif kepada pengguna yang dipercayai sahaja. 🎜🎜🎜Kes Sebenar: Kerentanan SQL Injection🎜🎜Pertimbangkan kod berikut: 🎜$stmt = $mysqli->prepare("SELECT * FROM users WHERE username=?"); $stmt->bind_param("s", $_POST['username']); $stmt->execute();
$_POST['username']
digunakan terus untuk membina pertanyaan. Penyerang boleh mengeksploitasi kelemahan ini dengan memasukkan nama pengguna yang mengandungi pertanyaan berniat jahat. 🎜🎜🎜Betulkan: 🎜Gunakan pernyataan yang disediakan: 🎜rrreee🎜Bahasa lain, seperti Python dan JavaScript, menawarkan kaedah yang serupa untuk mengesan dan membetulkan kelemahan keselamatan. 🎜Atas ialah kandungan terperinci Bagaimana untuk mengesan dan membetulkan kelemahan keselamatan dalam fungsi PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!