Web – CSRF와 XSS

- 정의
사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다.
유명 경매 사이트인 옥션에서 발생한 개인정보 유출 사건에서 사용된 공격 방식 중 하나다.
사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다.

- 보완책
- Referer Check
- 도메인 단위의 검증 – 백엔드에서 request의 referer를 확인하여 도메인의 일치를 체크하는 방법
참고 : https://privacyinternational.org/guide-step/4150/http-referer-explanation
- 도메인 단위의 검증 – 백엔드에서 request의 referer를 확인하여 도메인의 일치를 체크하는 방법
- Security Token
- CSRF token
- 세션 단위의 검증
– 임의의 난수를 값을 생성하여 세션으로 저장하고 사용자의 요청 부분마다 세션 값을 함께 넘김.
그리고 백엔드에서 파라미터로 넘겨받은 세션 값과 실제 세션의 토큰 값을 일치하는지 체크하는 방법
- 세션 단위의 검증
- Double Submit Cookie
- CSRF token
- Referer Check

- 정의
사이트 간 스크립팅(또는 크로스 사이트 스크립팅, 영문 명칭 cross-site scripting, 영문 약어 XSS)은 웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다. 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이루어진다. 이 취약점은 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 나타난다. 이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있다. 주로 다른 웹사이트와 정보를 교환하는 식으로 작동하므로 사이트 간 스크립팅이라고 한다.
- 보완책
- 입력 값을 제한
- 원하지 않는 값 입력 방지를 위해 유효성 검사를 추가합니다..
- 입력 값을 치환
- 스크립트 언어의 명령 동작 방지를 위해 <,>,|,&,= 등의 특수문자를 메타데이터로 변환합니다.
- 관련 라이브러리 사용
- 해당 공격법은 날로 진화하기때문에 취약점 해결을 위한 라이브러리 사용을 권장합니다
다만, 적용한 라이브러리의 업데이트가 느리다면 해당 라이브러리는 위험하니 관찰 또한 필요합니다.
- 해당 공격법은 날로 진화하기때문에 취약점 해결을 위한 라이브러리 사용을 권장합니다
- 입력 값을 제한

- CSRF 와 XSS 차이점
- CSRF – SERVER 대상의 공격
- XSS – Client 대상의 공격
댓글 3개
핑백 :
핑백 :
핑백 :