CSRF
Cross Site Request Forgrey
웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정한 웹 사이트에 요청하게 하는 공격
ex) 해커가 사용자의 SNS 계정으로 광고성 글을 올리는 것

-> 사용자가 웹 사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면 공격 대상이 되는 웹 사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출됨
- 아래의 조건이 만족할 때 실행
- 사용자가 해커가 만든 피싱 사이트에 접속한 경우
- 위조 요청을 전송하는 서비스에 사용자가 로그인을 한 상황
대응 기법
- 리퍼러(Refferer) 검증
백엔드 단에서 Refferer 검증을 통해 승인된 도메인으로 요청 시에만 처리하도록 함
- Security Token 사용
사용자의 세션에 임의의 난수 값을 저장하고, 사용자 요청 시 해당 값을 포함하여 전송
백엔드 단에서는 요청을 받을 때 세션에 저장된 토큰 값과 요청 파라미터로 전달받는 토큰 값이 일치하는 지 검증 과정을 거치는 방법
XSS
Cross Site Script(사이트 간 스크립팅)
CSRF와 같이 웹 어플리케이션 취약점 중 하나로, 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법

- 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타남
- 이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나 자동으로 비정상적인 기능을 수행하게 할 수 있음
공격 종류
- 지속성 : 지속적으로 피해를 입히는 유형
- 반사형 : 사용자에게 입력 받은 값을 서버에서 되돌려주는 곳에서 발생
- DOM 기반 : 악성 스크립트가 포함된 URL을 사용자가 요청하게 되면서 브라우저를 해석하는 단계에서 발생하는 공격
대응 기법
- 입출력 값 검증
XSS Cheat Sheet에 대한 필터 목록을 만들어 모든 Cheat Sheet에 대한 대응을 가능하도록 사전에 대비
- XSS 방어 라이브러리, 확장앱
Anti XSS 라이브러리를 서버단에 추가하며, 사용자들은 각자 브라우저에서 악성 스크립트가 실행되지 않도록 확장앱을 설치하여 방어
- 웹 방화벽
웹 공격에 특화된 것으로 다양한 injection을 한번에 방어할 수 있는 장점이 있음
- CORS, SOP 설정
CORS(Cross-Origin Resource Sharing), SOP(Same-Origin-Policy)를 통해 리소스 제한 (사전에 지정된 도메인이나 범위가 아니라면 리소스를 가져올 수 없게 제한)
[참고 자료]
🔗링크1
🔗링크2