PHP로 만든 오래된 웹사이트가 있는데, SQL Injection을 방어하려면 코드를 어떻게 수정해야 하나요? mysql_query를 아직 쓰고 있습니다.
mysql_query는 이미 PHP 7에서 삭제된 함수입니다. 즉시 PDO나 MySQLi로 마이그레이션해야 합니다.
// BAD (취약한 코드)$result = mysql_query("SELECT * FROM users WHERE id='$id'");// GOOD (PDO Prepared Statement)$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");$stmt->execute(['id' => $id]);$result = $stmt->fetch();
핵심은 사용자 입력을 쿼리에 직접 넣지 않는 것입니다. Prepared Statement를 쓰면 입력값이 SQL 구문으로 해석되지 않습니다.
댓글 3
mysql_query는 이미 PHP 7에서 삭제된 함수입니다. 즉시 PDO나 MySQLi로 마이그레이션해야 합니다.
핵심은 사용자 입력을 쿼리에 직접 넣지 않는 것입니다. Prepared Statement를 쓰면 입력값이 SQL 구문으로 해석되지 않습니다.