Magic Quotes는 PHP의 오래된 기능으로, 사용자로부터 받은 GET, POST, COOKIE 데이터의 특수문자(' " \ NULL) 앞에 자동으로 백슬래시()를 추가하는 기능입니다. SQL 인젝션을 방지하기 위해 도입되었으나, 여러 문제를 일으켜 PHP 5.4.0부터 완전히 제거되었습니다.
<?php
if(get_magic_quotes_gpc()) {
echo "Magic Quotes가 활성화되어 있습니다.";
} else {
echo "Magic Quotes가 비활성화되어 있습니다.";
}
?>
$db = new PDO("mysql:host=localhost;dbname=mydb", "user", "password");
$stmt = $db->prepare("SELECT * FROM users WHERE name = :name");
$stmt->execute(['name' => $userName]);
$cleanInput = filter_input(INPUT_POST, 'userInput', FILTER_SANITIZE_STRING);
$cleanEmail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$escaped_string = mysqli_real_escape_string($connection, $user_input);
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (:name, :email)");
$stmt->execute([
'name' => $userName,
'email' => $userEmail
]);
$safeOutput = htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
function sanitizeInput($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}