인프런 커뮤니티 질문&답변
str_replace함수의 순서에 따라 오류가 발생하는 원인
작성
·
406
퀴즈
SQL 인젝션 취약점의 주요 발생 원인은 무엇일까요?
강력한 암호화 기법 부족
사용자 입력값 검증 부재
웹 방화벽 미설치
데이터베이스 보안 설정 미흡
답변 1
1
크리핵티브
지식공유자
안녕하세요.
두번째 변경한 코드의 경우
id 변수 값이 test' 라면
$id = str_replace("'","\'",$id);
코드에 의해 test\' 이렇게 치환이 되고,
$id = str_replace("\\","\\\\",$id);
아래의 코드에 의해 test\\' 이렇게 변경됩니다.
그러면 \ 문자가 \\ 이렇게 사용되면 단순 \ 문자로 처리됩니다. 즉, \ 문자가 이스케이프 처리가 됩니다.
그래서 ' 문자가 이스케이프 처리가 되지 않아서 공격이 가능해집니다.






감사합니다!