MySQL 주입 방지: 최대 보안을 위한 이스케이프 문자
SQL 주입 방지는 악의적인 공격으로부터 데이터베이스를 보호하는 데 매우 중요합니다. mysql_real_escape_string() 함수를 사용할 때 주입 시도를 방지하기 위해 문자 , n, r, \, ', " 및 Z가 이스케이프됩니다.
그러나 OWASP.org의 ESAPI 보안 라이브러리에는 이스케이프를 위한 추가 문자가 포함되어 있습니다. b(백스페이스) 및 t(탭레이터)를 포함하여 이러한 문자가 왜 포함되어 있고 실제로 필요한가요?
이스케이프 방지의 탭 문자 및 백스페이스 문자
ESAPI 이스케이프 메커니즘에 b 및 t 문자가 포함된 것은 이러한 문자를 사용한 삽입 시도 가능성과 관련이 있을 수 있습니다. 다음 시나리오를 고려하십시오.
공격자는 다음과 함께 첨부된 텍스트 파일이 포함된 이메일을 보냅니다. 쿼리:
INSERT INTO students VALUES ("Bobby Tables",12,"abc",3.6);
이 쿼리는 무해한 쿼리로 보입니다. 그러나 공격자는 다음과 같이 쿼리 앞에 백스페이스 문자를 교묘하게 배치했습니다.
DROP TABLE students;\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b
수신자가 파일을 캣하는 경우 이를 MySQL로 파이프하면 백스페이스 문자가 무해한 쿼리를 덮어쓰게 되어 악의적인 DROP TABLE 학생이 발생합니다. 명령은 수신자가 모르는 사이에 실행됩니다.
게다가 탭 문자(t)는 잠재적으로 쿼리 내에서 악성 코드를 정렬하는 데 사용될 수 있으므로 가독성이 향상되고 탐지가 더 어려워집니다. 따라서 이러한 문자를 이스케이프하면 잠재적인 삽입 시도에 대한 추가 보호 계층이 제공됩니다.
위 내용은 SQL 주입 방지에서 ESAPI가 백스페이스(\b) 및 Tabulator(\t) 문자를 이스케이프하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!