> 데이터 베이스 > MySQL 튜토리얼 > MySQL 쿼리에 추가 속눈썹 대신 mysql_real_escape_string을 사용하는 이유는 무엇입니까?

MySQL 쿼리에 추가 속눈썹 대신 mysql_real_escape_string을 사용하는 이유는 무엇입니까?

DDD
풀어 주다: 2024-11-14 16:47:02
원래의
452명이 탐색했습니다.
Why Use mysql_real_escape_string Instead of addslashes for MySQL Queries? 
슬래시 추가

이 함수는 특정 문자 앞에 백슬래시를 추가합니다: '(작은따옴표), "(큰따옴표) ), (백슬래시) 및 NUL(NULL 바이트)은 이러한 문자가 쿼리의 일부로 해석되는 것을 방지하여 SQL 삽입 공격으로부터 보호하는 데 도움이 됩니다.

mysql_real_escape_string

PHP 7.3.0에서 더 이상 사용되지 않는 이 함수는 MySQL용으로 특별히 설계되었습니다. x00, n, r, x1a, '(작은따옴표) 및 "(큰따옴표)를 포함하여 MySQL에서 이스케이프해야 하는 문자에 백슬래시를 추가합니다. 인용하다). 그러나 MySQL에서 이스케이프를 실제로 구현하려면 추가 문자가 포함될 수 있다는 점에 유의하는 것이 중요합니다.

mysql_real_escape_string에서 이스케이프되지 않은 문자의 중요성

둘 사이의 주요 차이점 함수는 추가 래시로 이스케이프되지 않는 문자에 있습니다. 여기에는 다음이 포함됩니다.

x00:

이 문자는 C 및 기타 프로그래밍 언어에서 문자열 끝을 표시하는 데 자주 사용되는 NULL 바이트를 나타냅니다. 이를 이스케이프하면 쿼리가 조기 종료되는 것을 방지하는 데 도움이 됩니다.

    n:
  • 이 문자는 개행 문자를 나타냅니다. 이스케이프하면 다음 줄로 즉시 반환되지 않고 쿼리에서 문자열의 일부로 처리됩니다.
  • r:
  • 이 문자는 캐리지 리턴 문자를 나타냅니다. n과 같은 이유로 이스케이프하는 것이 중요합니다.
  • x1a:
  • 이 문자는 "control-Z" 문자로 알려져 있으며 MySQL 쿼리 내에서 예기치 않은 동작을 일으킬 수 있습니다. 이스케이프 처리하면 잠재적인 문제를 예방할 수 있습니다.
  • 권장 사항
  • 일반적으로 추가 속눈썹 대신 mysql_real_escape_string과 같은 데이터 공급자의 이스케이프 기능을 사용하는 것이 좋습니다. 이렇게 하면 사용 중인 특정 데이터베이스에 맞게 문자열이 준비됩니다. mysql_real_escape_string은 더 이상 사용되지 않지만 최신 버전의 PHP에는 MySQL 쿼리에서 문자열을 이스케이프하기 위한 유사한 대체 기능이 있을 가능성이 높습니다.

위 내용은 MySQL 쿼리에 추가 속눈썹 대신 mysql_real_escape_string을 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿