집 >데이터 베이스 >MySQL 튜토리얼 >SQL 주입을 방지하기 위해 동적 SQL 쿼리에서 테이블 이름을 동적으로 설정하려면 어떻게 해야 합니까?
동적 SQL 쿼리: 테이블 이름 설정
동적 SQL 쿼리에서는 특정 방법을 사용하여 매개변수를 동적으로 제공하고 테이블 이름을 설정할 수 있습니다. 매개변수를 성공적으로 설정했지만 이제 테이블 이름을 동적으로 설정하는 방법에 대한 지침이 필요합니다.
동적으로 테이블 이름 설정
SQL 주입 취약점을 예방하려면 가능하면 함수를 사용하는 것이 좋습니다. 이 경우 여러 기술을 결합하여 테이블 이름을 동적으로 설정할 수 있습니다.
<code class="language-sql">SET @TableName = '<[db].><[schema].>tblEmployees' SET @TableID = OBJECT_ID(@TableName) --如果格式错误/注入,则无法解析。 SET @SQLQuery = 'SELECT * FROM ' + QUOTENAME(OBJECT_NAME(@TableID)) + ' WHERE EmployeeID = @EmpID'</code>
이 스크립트는 테이블 이름을 매개변수로 초기화한 다음 기본 객체 ID를 검색하여 제공된 이름이 유효한지 확인합니다. 제공된 테이블 이름의 형식이 잘못되었거나 SQL 취약점으로 주입된 경우 개체 ID가 확인되지 않습니다.
마지막으로, 잠재적인 SQL 주입 공격을 방지하기 위해 테이블 이름을 참조하고 제공된 직원 ID 매개변수를 추가하여 동적 SQL 쿼리를 완료합니다.
위 내용은 SQL 주입을 방지하기 위해 동적 SQL 쿼리에서 테이블 이름을 동적으로 설정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!