要防止PHP注入攻擊,您可以遵循以下最佳實踐:
// 使用PDO
$stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (:username, :password)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$username = $_POST['username'];
$password = $_POST['password'];
$stmt->execute();
// 使用MySQLi
$stmt = $mysqli->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $password);
$username = $_POST['username'];
$password = $_POST['password'];
$stmt->execute();
$email = $_POST['email'];
$email_sanitized = filter_var($email, FILTER_SANITIZE_EMAIL);
if (filter_var($email_sanitized, FILTER_VALIDATE_EMAIL)) {
// 郵箱有效
} else {
// 郵箱無效
}
$username = htmlspecialchars($_POST['username'], ENT_QUOTES, 'UTF-8');
$password = htmlspecialchars($_POST['password'], ENT_QUOTES, 'UTF-8');
使用Web應用防火墻(WAF):部署WAF可以幫助識別和阻止SQL注入攻擊。
最小權限原則:為數據庫連接分配盡可能低的權限,這樣即使被攻擊,攻擊者也無法執行危險操作。
更新和維護軟件:定期更新PHP、數據庫管理系統和其他相關軟件,以修復已知的安全漏洞。
錯誤處理:避免顯示詳細的錯誤信息,因為這可能會向攻擊者泄露有關數據庫結構和配置的敏感信息。使用自定義錯誤處理程序來記錄錯誤。
使用安全編碼庫:使用安全編碼庫,如OWASP ESAPI(Enterprise Security API),可以幫助防止各種類型的攻擊,包括注入攻擊。
遵循這些最佳實踐可以大大降低PHP應用程序受到注入攻擊的風險。