집 >데이터 베이스 >MySQL 튜토리얼 >Psycopg2에서 테이블 이름을 매개변수로 안전하게 전달할 수 있는 방법은 무엇입니까?
Psycopg2에서 테이블 이름을 인수로 안전하게 전달
psycopg2에서는 문자열 연결('select %s from %s where...')을 사용하여 테이블 이름을 매개변수로 전달하는 것은 보안 위험이 있으므로 권장되지 않습니다. 대신, 더 안전한 psycopg2.sql 모듈을 사용하는 것을 고려해보세요.
psycopg2 버전 2.7에 추가된 sql 모듈은 테이블 이름을 동적으로 선택할 때 SQL 쿼리를 동적으로 생성하는 방법을 제공합니다. 예는 다음과 같습니다.
<code class="language-python">from psycopg2 import sql cur.execute( sql.SQL("insert into {table} values (%s, %s)").format(table=sql.Identifier('my_table')), [10, 20] )</code>
테이블명이나 필드명을 표현하려면 Identifier
대신 AsIs
을 사용하세요. 보안상의 이유로 Python 문자열 연결이나 문자열 인수 보간을 사용하지 마세요.
위 내용은 Psycopg2에서 테이블 이름을 매개변수로 안전하게 전달할 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!