일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 운영체제
- 프로그래머스
- CSS
- Til
- javascript
- level1
- 큐
- REST_API
- 생활코딩
- 자료구조
- UX
- Next.js
- UI
- 카카오
- superstarjypnation
- 백준
- 해시테이블
- 30daysdowoonchallenge
- 자바스크립트
- useState
- web
- 프로토타입
- 스택
- vercel
- 코드스테이츠
- React
- html
- 회고
- mysemester
- redux
- Today
- Total
데굴데굴
TIL: 2023-04-28 본문
⚙️ 오늘 학습한 내용
CSRF, XSS
🗝 키워드
보안, CSRF, XSS
🗣 스스로에게 설명
CSRF (Cross-site request forgery, 사이트 간 요청 변조)
사용자가 의도치 않게 공격자가 의도한 행동을 하여 취약점을 노출시키거나 수정/삭제/생성 등을 하게 만드는 공격 기법
사용자의 세션 쿠키 또는 다른 인증 정보를 사용자 모르게 이용한다.
공격 시나리오
서비스의 기능 요청을 공격자가 만든 웹 페이지에 사용자의 인증 정보를 포함해 전송한다.
GET CSRF - `<img>` 태그 활용
POST CSRF - `<form>` 태그 활용
공격자의 인증 정보로 사용자가 로그인하게 하는 방식이 있다.
대응 방법
referer
검증: 요청 헤더에 있는referer
속성을 검증하여 신뢰할 수 있는 사이트에서 들어온 요청인지 검증한다.
*referer
: 자원이 요청된 주소의 절대 경로/부분 경로를 담는 헤더.- CSRF 토큰: 서버 쪽 사용자의 세션에 난수를 저장하고 그 난수를 CSRF 토큰으로 지정하여 사용자에게 전송. 이후 요청부터 토큰이 일치하는지 확인
- captcha: 사용자에게 숫자/문자 입력하도록 하기
[보안] CSRF(Cross Site Request Forgery)란 무엇인가?
CSRF란 무엇인가?12CSRF(Cross Stie Request Forgery) : 사이트간 요청 위조웹 애플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹페이지를 보안에 취약
sj602.github.io
GitHub - baeharam/Must-Know-About-Frontend: 취준생이라면 알면 좋을 프론트엔드 관련 지식들
:mortar_board: 취준생이라면 알면 좋을 프론트엔드 관련 지식들. Contribute to baeharam/Must-Know-About-Frontend development by creating an account on GitHub.
github.com
CSRF (Cross-Site Request Forgery)
🔍 Introduction CSRF는 Cross-Site Request Forgery 의 약자로 쿠키의 동작 방식을 이용한 공격 방법으로 사용자의 세션 쿠키 또는 다른 인증정보를 이용하여 사용자 모르게 공격자가 의도한 서비스 요청을
www.hahwul.com
XSS (Cross-site Scripting, 사이트 간 스크립팅)
웹사이트 관리자가 아닌 사람이 사이트에 스크립트를 심을 수 있는 취약점을 이용한 공격기법
cross-site scripting인데 왜 XSS라고 부를까...했는데
이걸 그냥 줄이면 CSS라 그럼 헷갈리니까 Cross를 X로 바꿔서 XSS로 부르는 것 같다. (아마도)
XSS 공격은 사용자에게 받는 입력을 제대로 검증하지 않았을 때 발생할 수 있다.
공격 유형
- 저장 XSS: 취약점이 있는 웹 서버에 스크립트를 저장. 서버에 요청이 들어왔을 때 스크립트가 실행되게 하는 방법
- 반사 XSS: 브라우저는 사용자가 검색한 값에 대한 결과가 없으면 사용자의 입력값을 포함하여 응답한다. (~~에 대한 결과가 없습니다.) 여기서 스크립트를 실행하게 하는 방법. 악성 URL을 배포하여 클릭하도록 유도한다.
- DOM 기반 XSS: 공격 스크립트가 DOM 생성의 일부로 실행되는 방법. 마찬가지로 악성 URL을 배포하여 실행하도록 한다.
대응 방법
- 입/출력 값 검증 or 무효화: 입력값에
<script>
태그가 있으면<
를 html entities인<
로 바꿔서 스크립트 태그가 인식되지 않도록 한다. - 보안 라이브러리 사용: 입출력 값에
<script>
가 포함되어 있는지 확인하는 기능이 구현되어 있는 라이브러리를 사용한다.
🔎 공부가 더 필요한 부분
쿠키, 세션과 CSRF, XSS
'Lesson > TIL' 카테고리의 다른 글
TIL: 2023-05-01 (0) | 2023.05.01 |
---|---|
TIL: 2023-04-29 (0) | 2023.04.29 |
TIL: 2023-04-26 (0) | 2023.04.26 |
TIL: 2023-04-25 (0) | 2023.04.25 |
TIL: 2023-04-24 (0) | 2023.04.24 |