PDO를 사용하여 PHP에서 매개변수화된 쿼리를 검사하는 방법
PHP에서 데이터베이스 액세스를 위해 PDO를 활용할 때 매개변수화된 쿼리를 사용하면 차폐를 통해 보안이 강화됩니다. SQL 주입에 반대합니다. 하지만 토큰과 매개변수가 포함된 쿼리는 별도로 전송되기 때문에 실제 데이터베이스에서 실행되는 쿼리를 확인하기 어려울 수 있습니다.
직접 검색이 불가능합니다
Ben James는 PHP 측에서 완전한 SQL 쿼리를 얻을 수 있는 직접적인 방법은 없다고 설명합니다. 이는 데이터베이스가 토큰과 매개변수가 포함된 쿼리를 독립적으로 수신하고 실제 쿼리가 데이터베이스 내에서 조합되기 때문입니다. 토큰 처리 및 바인딩 기술의 변화로 인해 PHP 측에서 교체 프로세스를 에뮬레이션하는 것도 불가능합니다.
해결 방법으로 로깅
실행된 실제 쿼리를 검사하려면 해결 방법에는 모든 SQL 쿼리를 기록하는 것이 포함됩니다. MySQL에서는 my.cnf(또는 Windows 환경에서는 my.ini)를 수정하고 다음과 같은 줄을 추가하여 이를 수행할 수 있습니다.
log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]
그러나 이는 디버깅 목적으로만 사용해야 하며 MySQL에서는 사용해서는 안 됩니다. 성능 저하를 방지하기 위한 프로덕션 환경입니다.
위 내용은 ## PHP에서 PDO가 실행한 실제 쿼리를 어떻게 검사하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!