집 >데이터 베이스 >MySQL 튜토리얼 >`mysqli_real_escape_string`은 SQL 주입 공격을 방지하기에 충분합니까?
"mysqli_real_escape_string"이 SQL 공격 예방에 적합합니까?
제공된 코드는 mysqli_real_escape_string을 활용하여 SQL 삽입을 방지합니다. 그러나 이 기능만으로는 완전한 보호가 불가능하다는 점에 유의하는 것이 중요합니다.
SQL 주입 취약점
mysqli_real_escape_string을 사용함에도 불구하고 코드는 여전히 SQL 주입 공격에 취약합니다. . 이는 문자열 연결을 사용하여 SQL 쿼리를 조합하는데, 이를 통해 공격자가 양식 입력을 통해 악성 코드를 주입하여 쿼리를 조작할 수 있기 때문입니다.
권장 솔루션: 준비된 명령문
SQL 주입을 방지하는 가장 효과적인 방법은 준비된 문을 이용하는 것입니다. 쿼리 명령에서 데이터 매개변수를 분리하여 오염 가능성을 제거합니다. 예는 다음과 같습니다.
$stmt = $db_con->prepare("INSERT INTO `users` (`email`, `psw`) VALUES (?, ?)"); $stmt->bind_param("ss", $email, $psw); $stmt->execute();
추가 보안 조치
준비된 진술이 가능하지 않은 경우 다음을 고려하세요.
이러한 조치를 구현하면 SQL 삽입 및 기타 SQL 공격에 대비하여 애플리케이션의 보안을 크게 강화할 수 있습니다.
위 내용은 `mysqli_real_escape_string`은 SQL 주입 공격을 방지하기에 충분합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!