정보 보안 기초
게시판 웹 애플리케이션에서 이용자가 게시한 글 안의 스크립트가 다른 열람자의 브라우저에서 실행되어 버리는 취약점이 있었다. 이 취약점의 이름과 근본적인 대책의 조합으로 올바른 것은?
- ASQL 인젝션. 데이터베이스 접속에 사용하는 비밀번호를 길게 한다
- B크로스 사이트 스크립팅(XSS). 게시된 글을 HTML로 출력할 때 <나 > 등 특별한 의미를 가진 문자를 이스케이프한다
- C크로스 사이트 스크립팅(XSS). 서버와 브라우저 사이의 통신을 HTTPS로 암호화한다
정답과 해설 보기
정답: B. 크로스 사이트 스크립팅(XSS). 게시된 글을 HTML로 출력할 때 <나 > 등 특별한 의미를 가진 문자를 이스케이프한다
크로스 사이트 스크립팅(XSS)은 웹 애플리케이션이 이용자의 입력을 그대로 HTML 안에 출력하기 때문에, 입력에 포함된 스크립트가 페이지의 일부로서 열람자의 브라우저에서 실행되어 버리는 취약점입니다. 스크립트는 그 사이트의 페이지로서 동작하므로, 열람자의 세션 정보(Cookie)를 훔치거나 가짜 입력란을 표시할 우려가 있습니다. 근본적인 대책은 출력하는 위치에 따라 <, >, &, 따옴표 같은 특별한 의미를 가진 문자를 이스케이프(예를 들어 <를 <로 변환)하여 단순한 문자로 표시되게 하는 것입니다. 보조적인 대책으로 Cookie에 HttpOnly 속성을 붙여 스크립트에서 읽을 수 없게 하거나, 콘텐츠 보안 정책으로 실행할 수 있는 스크립트를 제한합니다. HTTPS는 통신로를 보호하는 것으로, 정규 페이지에 삽입된 스크립트의 실행은 막을 수 없습니다.