LIMIT 절의 변수를 적절하게 처리하여 SQL 주입 방지
사용자 제공 입력으로 데이터베이스를 쿼리할 때 데이터 무결성을 보장하고 SQL 방지 주입이 중요합니다. 단, MySQL의 LIMIT 절에서 BindValue 메서드를 사용할 때는 입력 값을 올바르게 처리하는 것이 중요합니다.
제공된 코드에서는 LIMIT 부분의 :skip 매개 변수에 작은따옴표가 추가되어 오류가 발생합니다. SQL 문. 이러한 불일치는 정수가 아닌 값을 작은따옴표로 자동으로 묶는 PHP의 PDO로 인해 발생합니다.
이 문제를 해결하려면 :skip 매개변수가 바인딩값 메서드에 전달되기 전에 정수로 캐스팅되었는지 확인하세요.
$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);
값을 정수로 강제 변환함으로써 SQL 삽입 취약점으로 이어질 수 있는 작은따옴표 추가를 방지합니다. 이렇게 하면 사용자가 제공한 입력이 SQL 쿼리에 사용되기 전에 적절하게 삭제됩니다.
정수로의 캐스팅은 입력이 숫자 문자열인 경우에만 작동한다는 점을 기억하세요. 숫자가 아닌 입력의 경우 적절한 유효성 검사 및 오류 처리 메커니즘을 구현해야 합니다.
위 내용은 MySQL의 LIMIT 절에서 사용자 입력을 사용할 때 SQL 주입을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!