특정 상황에서 mysql_real_escape_string()
를 우회하는 SQL 인젝션
mysql_real_escape_string()
은 일반적으로 SQL 주입 취약점을 제거한다고 여겨지지만 일부 특수한 경우에는 여전히 우회될 수 있습니다.
취약점 분석
특정 시나리오에서 공격자는 데이터베이스 연결의 문자 집합이 ASCII 문자'와 '(예: gbk, sjks)를 모두 지원하도록 선택할 때 발생하는 mysql_real_escape_string()
의 결함을 악용할 수 있습니다.
공격자는 잘못된 멀티바이트 문자 시퀀스(예: xbfx27)가 포함된 페이로드를 구성할 수 있으며, mysql_real_escape_string()
을 통해 처리하면 이스케이프되지 않은 ' 문자가 생성됩니다. 따라서 쿼리에 삽입하면 SQL 삽입이 발생합니다.
예
다음 PHP 코드를 고려해보세요.
$login = mysql_real_escape_string($_POST['login']); $password = mysql_real_escape_string($_POST['password']); $sql = "SELECT * FROM table WHERE login='$login' AND password='$password'";
공격자가 $_POST['login']
의 값을 \xbf\x27 OR 1=1 /*
로 설정하면 mysql_real_escape_string()
의 보호를 우회하여 테이블의 모든 행을 검색할 수 있습니다.
완화 조치
이 취약점을 완화하려면 다음을 수행하세요.
- 최신 MySQL 버전으로 업그레이드: 최신 MySQL 버전(예: MySQL 5.1)에는 이 특정 문제에 대한 수정 사항이 포함되어 있습니다.
- 안전한 문자 세트 사용: ' 및 '를 유효한 문자로 지원하지 않는 문자 세트(예: utf8, latin1)를 사용하세요.
- PDO에서 에뮬레이트된 준비된 문을 비활성화합니다. PDO::ATTR_EMULATE_PREPARES를 false로 설정하여 실제 준비된 문을 강제로 사용합니다.
-
문자 집합을 올바르게 설정하세요.
mysql_set_charset()
또는 PDO의 DSN 문자 집합 매개 변수를 사용하여 데이터베이스 연결의 문자 집합을 명시적으로 설정하세요. - SQL 모드 'NO_BACKSLASH_ESCAPES' 사용(주의해서 사용): 이 SQL 모드는 이스케이프 중에 유효한 문자가 생성되는 것을 방지하여 이 특정 취약점을 완화합니다. 그러나 잠재적인 부작용에 유의하십시오.
위 내용은 특정 문자 세트 조건에서 SQL 주입이 `mysql_real_escape_string()`을 우회할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

mysqlblobshavelimits : tinyblob (255bodes), blob (65,535 bytes), mediumblob (16,777,215 bctes), andlongblob (4,294,967,295 Bytes) .tousebl obseffectical : 1) 고려 사항을 고려합니다

MySQL에서 사용자 생성을 자동화하기위한 최고의 도구 및 기술은 다음과 같습니다. 1. MySQLworkBench, 중소형 환경에 적합하고 사용하기 쉽지만 자원 소비가 높습니다. 2. 다중 서버 환경에 적합한 Ansible, 간단하지만 가파른 학습 곡선; 3. 사용자 정의 파이썬 스크립트, 유연하지만 스크립트 보안을 보장해야합니다. 4. 꼭두각시와 요리사는 대규모 환경에 적합하며 복잡하지만 확장 가능합니다. 선택할 때 척도, 학습 곡선 및 통합 요구를 고려해야합니다.

예, youcansearchinsideablobinmysqlusingspecifictechniques.1) converttheblobtoautf-8stringwithConvertFunctionandSearchusing

mysqloffersvariousStringDatatatypes : 1) charfixed-lengthstrings, 이상적인 원인이 길이의 길이가 길이 스트링스, 적합한 포르 플리드 슬리 키나 이름; 3) TextTypesforlargerText, goodforblogpostsbutcactperformance;

TomasterMySQLBLOBs,followthesesteps:1)ChoosetheappropriateBLOBtype(TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB)basedondatasize.2)InsertdatausingLOAD_FILEforefficiency.3)Storefilereferencesinsteadoffilestoimproveperformance.4)UseDUMPFILEtoretrieveandsaveBLOBsco

blobdatatypesinmysqlareusedforvoringlargebinarydatalikeimagesoraudio.1) useblobtypes (tinyblobtolongblob) 기반 론다 타지 세인. 2) StoreBlobsin perplate petooptimize 성능.

toadduserstomysqlfromthecommandline, loginasroot, whenUseCreateUser'Username '@'host'IdentifiedBy'Password '; toCreateAwUser.grantPerMissionswithGrantAllilegesOndatabase

mysqlofferSeightStringDatatatypes : char, varchar, binary, varbinary, blob, text, enum and set.1) charisfix-length, 2) varcharisvariable-length, 효율적 인 datalikenames.3) binaryandvarbinary-binary Binary Binary Binary Binary Binary Binary Binary-Binary


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)