[database]mysql 如何防駭
MySQL 資料庫的安全性非常重要,特別是你的應用需要全球打卡,涉及大量用戶數據。為了防止駭客攻擊,你可以從以下幾個層面加強防護: 1. 使用強密碼與最小權限原則 ✅ 強密碼策略 確保 MySQL 帳戶使用強密碼,避免簡單密碼被破解: ALTER USER 'youruser' @ '%' IDENTIFIED WITH mysql_native_password BY 'StrongP@ssw0rd!' ; 可透過 validate_password 外掛來強制執行: INSTALL PLUGIN validate_password SONAME 'validate_password.so' ; SET GLOBAL validate_password_policy = STRONG; ✅ 最小權限原則 不要讓應用程式帳戶擁有 ALL PRIVILEGES ,只給必要的權限: GRANT SELECT , INSERT , UPDATE ON mydb. * TO 'appuser' @ '%' ; 2. 限制 MySQL 連線與遠端存取 ✅ 避免 MySQL 允許遠端連線 除非必要,不允許外部 IP 直接連線 MySQL,編輯 my.cnf : bind-address = 127.0 . 0.1 如果必須開放,則 限制特定 IP : CREATE USER 'appuser' @ 'your.server.ip' IDENTIFIED BY 'password' ; 3. 防 SQL Injection(SQL 注入攻擊) ✅ 使用 Prepared Statements 永遠不要在 SQL 查詢中拼接使用者輸入,應該使用 Prepared Statement : import 'package:mysql1/mysql1.dart'; void insertCheckIn(MySqlConnection conn, double latitude, double longitude) async { await ...