모두CBT

취약점 제거를 위해 보안사항을 고려하여 안전한 코드를 작성하였다. 다음… | [정보보안기사 필기] 22년 1회차 기출문제 상세 페이지

1[정보보안기사 필기] 22년 1회차
취약점 제거를 위해 보안사항을 고려하여 안전한 코드를 작성하였다. 다음 코드를 통해 차단할 수 있는 보안취약점은 무엇인가?
문제 이미지
1
SQL Injection 취약점
2
XSS(Cross Site Scripting)
3
부적절한 에러처리를 통해 정보 노출
4
경로 조작(Path Traversal) 취약점
해설

JSTL의 <c:out>으로 값을 출력하면 escapeXml 기본값이 true라서 HTML 특수문자가 엔티티로 바뀌므로 크로스사이트 스크립팅(XSS)이 차단된다.

검색 결과를 그대로 찍으면 저장돼 있던 <script> 같은 태그가 브라우저에서 코드로 실행된다. <c:out>은 < > & " ' 를 < > & " ' 로 변환해 문자열로만 표시하므로 스크립트가 실행되지 않는다.

다른 취약점은 방어 지점이 출력 단계가 아니다.

  • SQL 인젝션: 질의문 조립 단계의 문제라 PreparedStatement 바인딩으로 막는다.
  • 부적절한 에러처리에 의한 정보 노출: 예외 메시지를 숨기고 지정한 오류 페이지로 보내야 막힌다.
  • 경로 조작: 파일 경로 입력값에서 상위 경로 문자를 제거하고 허용 목록으로 검증해야 막힌다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.