>  기사  >  백엔드 개발  >  SQLite에서 동적 테이블 이름을 안전하게 생성하려면 어떻게 해야 합니까?

SQLite에서 동적 테이블 이름을 안전하게 생성하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-15 00:30:02422검색

How can I create a dynamic table name in SQLite securely?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.