>  기사  >  백엔드 개발  >  MySQL IN 절에서 ID 목록을 어떻게 안전하게 사용할 수 있습니까?

MySQL IN 절에서 ID 목록을 어떻게 안전하게 사용할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-15 04:35:02235검색

How Can I Safely Use a List of IDs in a MySQL IN Clause?

보안 MySQL IN 절에 대한 목록 삽입

MySQL IN 절에서 ID 목록을 안전하게 사용하고 SQL 삽입을 방지하려면 MySQL의 목록을 수동으로 내포하고 이스케이프하는 대신 매개변수화 기능

format_strings = ','.join(['%s'] * len(list_of_ids))
cursor.execute("DELETE FROM foo.bar WHERE baz IN (%s)" % format_strings, tuple(list_of_ids))

이 접근 방식에는 여러 가지 장점이 있습니다.

  • 보안: 데이터가 매개변수로 MySQL 드라이버에 전달되어 제대로 이스케이프되도록 보장합니다. 주입으로부터 보호됩니다.
  • 단순함: 수동으로 인용이나 이스케이프를 수행할 필요가 없으므로 코드가 단순화되고 오류 위험이 줄어듭니다.
  • 성능: 매개변수화는 목록을 내포하고 수동으로 이스케이프하는 것보다 더 효율적인 경우가 많습니다.

데이터는 MySQL 쿼리에 사용하기에 안전한 값의 튜플로 전달됩니다. format_strings 변수는 매개변수에 대한 쉼표로 구분된 자리 표시자 목록을 생성합니다.

위 내용은 MySQL IN 절에서 ID 목록을 어떻게 안전하게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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