SQLite에서 동적 테이블 생성
SQLite에서는 변수 테이블 이름이 직접 지원되지 않습니다. 그러나 보안을 유지하면서 비슷한 효과를 얻을 수 있는 기술이 있습니다.
생성자 사용을 피하세요
문자열 생성자를 사용하여 테이블 이름을 만드는 것은 SQL의 위험으로 인해 권장되지 않습니다. 주입 공격. 테이블 이름을 구성하기 전에 삭제 함수를 사용하여 변수에서 특수 문자를 제거하는 것이 좋습니다.
스크러빙 함수
스크러빙 함수의 예는 다음과 같습니다.
def scrub(table_name): return ''.join(chr for chr in table_name if chr.isalnum())
이 기능은 테이블 이름에서 영숫자가 아닌 문자를 필터링합니다.
사용법
동적으로 결정된 이름으로 테이블을 생성하려면 다음 접근 방식을 사용할 수 있습니다.
table_name = scrub(self.name) cursor.execute("CREATE TABLE StarFrame" + table_name + " (etc etc)")
이렇게 하면 테이블 이름이 잠재적인 주입 공격으로부터 안전해집니다.
위 내용은 SQLite에서 동적 테이블 이름을 안전하게 생성하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!