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 중국어 웹사이트의 기타 관련 기사를 참조하세요!