在 PHP 中,要确保 save()
函数的数据安全,可以采取以下措施:
filter_input()
和 filter_var()
函数来过滤和验证输入数据。例如:$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);
htmlspecialchars()
或 mysqli_real_escape_string()
等函数转义特殊字符。例如:$username = htmlspecialchars($username, ENT_QUOTES, 'UTF-8');
$password = mysqli_real_escape_string($conn, $password);
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
password_hash()
函数:$hashed_password = password_hash($password, PASSWORD_BCRYPT);
header()
函数设置 Content-Security-Policy:header("Content-Security-Policy: default-src 'self'");
session_start()
函数,设置安全的 session cookie 属性,以及定期更新 session ID。例如:session_start();
// 设置安全的 session cookie 属性
session_set_cookie_params(0, '/', '', false, true, true, true);
// 定期更新 session ID
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), session_id(), time() + ($params["lifetime"] * 60 * 60 * 24),
$params["path"], $params["domain"], $params["secure"], $params["httponly"]
);
}
通过遵循以上建议,可以大大提高 PHP save()
函数的数据安全性。