애플리케이션이 로그인 아이디를 다음처럼 SQL 문자열에 연결한다. sql = "SELECT id FROM member WHERE login_id='" + input + "'"; 입력값이 SQL 구문의 구조로 해석되는 문제를 가장 직접적으로 막는 수정은?
정답 2번
취약점의 원인은 신뢰할 수 없는 입력을 SQL 문자열에 직접 이어 붙여 데이터와 명령의 경계가 사라진 것이다. 준비된 문장 또는 매개변수화 질의로 `WHERE login_id = ?`를 만들고 입력값을 별도로 바인딩하면 SQL 구조는 고정되고 입력은 값으로만 처리된다. 출력 인코딩이나 일부 문자 제거는 이 경계를 보장하지 않는다.
콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-09-04