在 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() 函数的数据安全性。