ADOdb 및 일반 웹사이트 보안의 SQL 주입 이해
SQL 주입은 사용자 입력이 부적절하게 인코딩되어 잠재적으로 웹사이트 보안을 손상시킬 때 발생합니다. 일반적으로 POST 및 GET 메서드와 관련되어 있지만 이러한 공격은 다양한 시나리오에서 발생할 수 있습니다.
SQL 주입의 예
POST 메서드와 함께 제공된 코드를 고려하세요.
$name = trim($_POST['username']); $mail = trim($_POST['email']); $password = trim($_POST['password ']); if ($errors == "false") { $sql = "INSERT INTO clients SET name='" . mysql_real_escape_string($name) . "', mail='" . mysql_real_escape_string($mail) . "', password='" . mysql_real_escape_string(sha1($password)) . "'"; $connection->execute($sql); }
이 코드는 mysql_real_escape_string을 사용하여 사용자 입력을 이스케이프 처리하여 SQL을 방지합니다.
이제 GET 메소드가 있는 코드를 살펴보겠습니다.
$sql = "SELECT videoID FROM likes WHERE videoID = '" .mysql_real_escape_string($videoID). "' AND UID = '" .mysql_real_escape_string($userID). "' LIMIT 1"; $connection->execute($sql);
다시 말하지만, mysql_real_escape_string은 인코딩에 사용되어 이 코드의 보안을 보장합니다.
두 경우 모두, mysql_real_escape_string을 사용하면 사용자 입력을 적절하게 이스케이프하여 공격을 방지할 수 있습니다. 그러나 잠재적인 취약점을 완화하려면 항상 일정하지 않은 입력을 사용자 입력으로 처리하는 것이 중요합니다.
SQL 주입 완화
보안을 강화하고 SQL 주입을 방지하려면 다음을 수행해야 합니다. 준비된 문과 함께 PDO를 사용하는 것이 좋습니다. 이 현대적인 접근 방식은 사용자 입력이 적절하게 인코딩되어 잠재적인 보안 침해를 방지합니다.
위 내용은 PDO를 사용하여 준비된 명령문은 어떻게 웹 사이트 보안을 강화하고 SQL 주입을 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!