XSS / CSRF
XSS
1) Session ID를 얻어 정상 사용자인 척하면서 API를 호출해 데이터를 빼내거나
2) 사용자 브라우저에 악성 스크립트가 실행되면서 사용자 PC를 통제하거나
3) 사용자가 악성 스크립트가 있는 URL을 클릭하도록 유도해서, 악성코드 또는 프로그램이 다운로드 되도록 한다.
대응
- 입력 데이터의 길이 제한하기
- 지정된 문자 또는 형식으로 입력되었는지 확인
- 정해진 규칙을 벗어난 입력 값들은 무효화 시키기
or
- MS 개발한 AntiXSS 라이브러리
- OWASP 오픈소스 라이브러리
- 네이버 Lucy-Xss-Servlet-Filter 라이브러리
CSRF
1) 사이트 간 요청 위조로 특정 웹사이트가 사용자의 웹 브라우저를 신용해서 발생하는 공격
2) XSS 공격이 주로 사용자(Client)를 공격하는 행위라면, CSRF는 웹 서버(Server)를 공격하는 행위
로그인한 사용자의 세션을 재사용해 서버에 가짜 요청을 하는 것. ex) 데이터 등록, 수정, 삭제 등
CSRF 공격 대응 방법
API 호출시 token을 사용하는 것
- token을 재사용할 수 없도록 유효 시간을 설정, 로그아웃시 세션 만료시키는 것
GET 보다는 POST 방식을 사용하는 것을 추천
(참조) https://gogomalibu.tistory.com/163