"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python을 사용하여 변수를 SQL 쿼리에 안전하게 삽입하는 방법은 무엇입니까?

Python을 사용하여 변수를 SQL 쿼리에 안전하게 삽입하는 방법은 무엇입니까?

2025-02-06에 게시되었습니다
검색:444

How to Safely Insert Variables into SQL Queries Using Python?

Python에서 SQL 쿼리에 변수를 안전하게 삽입

Python에서 데이터베이스 쿼리를 처리 할 때 일반적으로 쿼리 문에 변수를 포함해야합니다. 그러나 구문 오류 또는 보안 취약점을 방지하는 방식으로 작동해야합니다.

다음 파이썬 코드를 고려하십시오 :

cursor.execute("INSERT INTO table VALUES var1, var2, var3")

이 코드에서 var1 는 정수, var2 var3 는 문자열입니다. 그러나 Python이 이름 var1 , var2 var3 이름을 포함 시키려고 할 때 쿼리 텍스트 자체의 일부로 문제가 발생하여 쿼리 무효화가 발생합니다.

이 문제를 해결하기 위해 데이터베이스 API가 제공하는 자리 표시 자 교체 메커니즘을 사용할 수 있습니다. 자리 표시자를 사용하여 코드를 다시 작성하는 방법은 다음과 같습니다.

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))

이 개선 된 코드에서 :

  • %s 는 값을 채우는 자리 표시자를 나타냅니다.
  • (var1, var2, var3) 는 삽입 할 값을 포함하는 튜플입니다.

값을 튜플로 전달함으로써 데이터베이스 API는 필요한 변수 탈출 및 참조를 처리하여 데이터베이스 호환성을 보장하고 잠재적 보안 위험을 방지합니다.

단일 매개 변수의 경우 후행 쉼표가있는 튜플이 필요합니다.

cursor.execute("INSERT INTO table VALUES (%s)", (var1,))

또한 보안 취약점을 유발할 수 있고 데이터베이스 API가 지원하지 않기 때문에 String Formatting Operator (%)를 사용하여 변수를 삽입하지 마십시오.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3