我正在 MySQL 上创建简单的 CRUD 操作和 Pack API 以在我的移动应用程序中使用。但是,我不知道如何在这里提供安全性。我希望我的数据库连接信息不被窃取,并且恶意用户无法访问它。例如,在下面的代码中,根据通过POST方法从users表接收到的用户ID信息来执行删除过程。
<?php
$host = 'localhost';
$dbname = 'database_name';
$username = 'database_username';
$password = 'database_password';
header("Content-Type: application/json; charset=utf-8");
$userID = intval($_POST["user_id"]);
$response = array();
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("DELETE FROM users WHERE user_id = :userID");
$stmt->bindParam(":userID", $userID);
$stmt->execute();
$response['status'] = "success";
} catch (PDOException $e) {
$response['status'] = "error";
$response['message'] = $e->getMessage();
}
echo json_encode($response);
?>
我不知道你是否使用Apache。
在这种情况下,您可以使用htaccess && htpasswd
我用它来保证简单 REST API 的安全性
https://httpd.apache.org/docs/2.4/fr/programs/htpasswd.html
我也建议你改变这条线
$userID = intval($_POST["user_id"]);
您必须保护您的 POST,看这个:终极清洁/安全功能
祝你好运!