SQL 주입 방지를 위한 PDO의 접근 방식
mysql 라이브러리에서 PDO로 전환한 경우 real_escape_string을 대체하는 방법이 궁금할 수 있습니다. 데이터베이스로 향하는 문자열에서 작은따옴표를 이스케이프하는 함수입니다. 모든 문자열에 슬래시를 추가하는 것이 번거로워 보일 수 있지만 PDO는 보다 효율적인 대안을 제공합니다.
PDO 준비의 힘
SQL 주입을 방지하기 위해 PDO는 다음을 사용할 것을 권장합니다. 준비() 메소드. 이 방법은 쿼리 계획 및 메타 정보의 캐싱을 활성화하여 애플리케이션 성능을 최적화합니다. 또한 수동으로 매개변수를 인용할 필요가 없으므로 SQL 주입 공격을 방지할 수 있습니다.
PDO 준비 작동 방식
PDO::prepare(), PDO를 실행할 때 준비된 진술을 확립합니다. 그런 다음 이 문은 컴파일되고 캐시되어 실행 효율성이 향상됩니다. 매개변수가 포함된 쿼리를 실행할 준비가 되면 PDOStatement::execute()를 호출하여 수동으로 인용할 필요 없이 준비된 문에 매개변수를 삽입합니다.
사용 예
다음은 PDO prepare() 및 excute() 사용의 예입니다:
$pdo = new PDO("...");
$sql = "INSERT INTO users (username, email) VALUES (?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$username, $email]);
PDO prepare() 및execute()를 사용하면 수동 문자열 이스케이프 없이 매개변수화된 쿼리를 안전하게 실행할 수 있습니다. 이는 SQL 주입 공격을 방지하여 코드를 단순화하고 보안을 강화합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3