> 데이터 베이스 > MySQL 튜토리얼 > `mysql_real_escape_string()` 및 `mysql_escape_string()`은 SQL 주입으로부터 웹 애플리케이션을 보호하기에 충분합니까?

`mysql_real_escape_string()` 및 `mysql_escape_string()`은 SQL 주입으로부터 웹 애플리케이션을 보호하기에 충분합니까?

Susan Sarandon
풀어 주다: 2024-12-13 03:16:14
원래의
769명이 탐색했습니다.

Are `mysql_real_escape_string()` and `mysql_escape_string()` Enough to Secure My Web Application Against SQL Injection?

mysql_real_escape_string() 및 mysql_escape_string()이 애플리케이션 보안에 충분합니까?

이러한 기능은 데이터 보호를 강화할 수 있지만 보안을 강화하는 데는 충분하지 않습니다. 모든 보안으로부터 웹 애플리케이션을 완벽하게 보호

SQL 주입

  • Mysql_escape_string()은 여전히 ​​SQL 주입 공격에 취약할 수 있으며, 특히 변수 데이터가 쿼리에 사용되는 경우 더욱 그렇습니다.

LIKE SQL 공격

  • "�ta%"와 같은 매개변수가 포함된 LIKE 쿼리를 이용하면 모든 기록을 반환하거나 전체 신용카드 번호와 같은 민감한 정보를 공개할 수 있습니다.

문자 집합 악용

  • Internet Explorer는 여전히 문자 집합에 취약합니다. 이는 악의적인 행위자에게 원격 데이터베이스 제어 권한을 부여할 수 있습니다.

LIMIT Exploits

  • Mysql_real_escape_string()은 실행할 수 있는 LIMIT 공격에 대해 효과적이지 않습니다. LIMIT를 조작하여 임의의 SQL 쿼리 value.

선제적 방어: 준비된 명령문

  • Escape에만 의존하기보다는 준비된 명령문을 사용하여 예상치 못한 SQL 실행을 방지하는 것이 좋습니다.
  • 준비된 문은 유효한 서버 측 SQL 구문을 적용하여 알려진 위험과 알려지지 않은 위험을 모두 완화합니다.

코드 예

다음은 mysql_escape_string()과 PHP의 준비된 문을 비교한 것입니다.

// Escaping Method
$sql = sprintf("SELECT url FROM GrabbedURLs WHERE %s LIKE '%s%%' LIMIT %s",
               mysql_real_escape_string($argv[1]),
               mysql_real_escape_string($argv[2]),
               mysql_real_escape_string($argv[3]));

// Prepared Statement
$statement = $pdo->prepare('SELECT url FROM GrabbedURLs ' .
                           'WHERE ' . $column . '=? ' .
                           'LIMIT ' . intval($limit));
$statement->execute(array($value));
로그인 후 복사

준비된 문, 구현하는 데 시간이 약간 더 걸리지만 악의적인 SQL 쿼리에 대한 탁월한 보호 기능을 제공하고 코드 복잡성을 줄입니다.

위 내용은 `mysql_real_escape_string()` 및 `mysql_escape_string()`은 SQL 주입으로부터 웹 애플리케이션을 보호하기에 충분합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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