> 데이터 베이스 > MySQL 튜토리얼 > mysql_real_escape_string()은 SQL 주입 공격으로부터 완벽한 보호를 제공합니까?

mysql_real_escape_string()은 SQL 주입 공격으로부터 완벽한 보호를 제공합니까?

DDD
풀어 주다: 2024-11-27 11:46:10
원래의
234명이 탐색했습니다.

Does mysql_real_escape_string() Offer Complete Protection Against SQL Injection Attacks?

mysql_real_escape_string()이 SQL 주입 공격을 완벽하게 방지할 수 있습니까?

작업 시 SQL 주입에 대한 mysql_real_escape_string()의 효율성에 대한 우려가 제기되었습니다. 특정 아시아 캐릭터와 함께 인코딩.

우회 문제

소스에 따르면 mysql_real_escape_string()은 Big5 또는 GBK 문자 인코딩을 사용하여 우회하는 데 취약할 수 있습니다. 이러한 인코딩을 사용하면 백슬래시가 두 번째, 세 번째 또는 네 번째 바이트로 표시되어 이스케이프 프로세스가 중단될 수 있습니다.

완화 전략

mysql_real_escape_string()이 그렇지 않을 수도 있습니다. 모든 경우에 완전히 신뢰할 수 있으며 SQL을 방지하기 위한 대체 조치가 있습니다. 주입:

  • 준비된 명령문: 준비된 명령문은 쿼리를 매개변수화하여 입력 삭제를 자동으로 처리합니다.
  • mysql_set_charset: Stefan Esser가 언급했듯이, 이는 SET보다 문자 인코딩을 변경하는 더 새롭고 안전한 방법입니다. 이름.

준비된 진술이 없는 경우

준비된 진술이 선택 사항이 아닌 경우 다음을 고려하십시오.

  • UTF-8 인코딩: Esser는 UTF-8이 안전하다고 보장합니다. mysql_real_escape_string()과 함께 사용하세요.
  • 입력 필터링: 쿼리를 수행하기 전에 정규식이나 기타 기술을 사용하여 잠재적으로 악의적인 문자를 필터링합니다.

결론

mysql_real_escape_string()은 아니지만 완전히 변조 방지 기능을 갖추고 있어 SQL 주입을 방지하는 데 유용한 도구로 남아 있습니다. UTF-8 인코딩 또는 입력 필터링과 같은 추가 완화 전략을 구현하면 악의적인 공격의 위험을 크게 줄일 수 있습니다.

위 내용은 mysql_real_escape_string()은 SQL 주입 공격으로부터 완벽한 보호를 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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