질문:
테이블 이름을 매개변수로 사용하여 SQL 쿼리를 실행할 때 올바른 SQL 구문을 보장하는 것은 어려운 일입니다.
해결책:
psycopg2.sql 모듈
공식 문서에 따르면 psycopg2의 sql 모듈은 SQL 쿼리를 동적으로 생성하는 안전한 방법을 제공합니다. 다음 구문을 소개합니다.
<code>from psycopg2 import sql cur.execute(sql.SQL("insert into {table} values (%s, %s)") .format(table=sql.Identifier('my_table')), [10, 20])</code>
이 접근 방식은 올바른 SQL 구문을 보장하고 주입 공격의 위험을 제거합니다.
참고: AsIs 메서드는 테이블이나 필드 이름을 나타내는 데 사용하면 안 됩니다. 대신 sql 모듈을 사용하세요.
안전 경고:
Pycopg2는 Python 문자열 연결이나 문자열 매개변수 보간을 사용하여 SQL 쿼리에 변수를 전달하는 것에 대해 강력히 경고하고 잠재적인 보안 취약성을 강조합니다.
위 내용은 psycopg2 SQL 쿼리에서 테이블 이름을 매개 변수로 안전하게 전달하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!