땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • D
  • I
  • ㅗ
  • E
  • 이것이 리눅스다 with Rocky Linux9

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원
CS

[CS]CSRF & XSS & CORS에 대해

CS

[CS]CSRF & XSS & CORS에 대해

2023. 1. 29. 15:30

스프링 시큐리티에 대해 공부하던 중 CSRF & XSS에 대한 개념이 많이 언급되서 정리를 해보려고 한다

 

사실 여러번 들어보고 개념정도는 말할 수 있지만 좀 더 자세히 공부를 해보는게 좋을 것 같다

 

CSRF(Cross-Site Request Forgery), 사이트 간 요청 위조

말 그대로 사용자가 자신의 의지와는 무관하게 사이트 간의 통신이 일어나는 중에 요청(Request)를 위조해서 공격한다는 의미

대표적으로 2008년에 옥션에서 CSRF로 인한 해킹사건이 일어났었다

옥션 관리자 중 한명이 관리 권한을 가지고 있는 상태에서 회사 내에서 작업하던 중 메일이 날라왔는데 그 메일을 열어볼 때 해킹을 하여 시원하게 털린 기록이 있음

** 여기어때는 2017년에 SQL Injection으로 털림

 

대처방법

  • Security Token(CSRF Token)  -> Spring Security에선 csrf() 설정을 해서 CSRF 토큰을 발급하여 클라이언트로부터 요청을 받을때마다 토큰을 검증한다
  • Referrer(요청 전송 페이지) 검증 -> referrer는 링크를 통해서 각각의 사이트로 방문시 남는 흔적이라고 이해하면 되는데 이메일 같은걸로 특정 URL로 방문 했다는건 정상적인 접근이 아니니까 이런식으로도 대처 가능

 

XSS(Cross-Site-Script(Scripting)), 크로스 사이트 스크립팅

공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹사이트를 변조하거나, 악의적 콘텐츠를 삽입하거나, 피싱 공격을 진행하는 것을 말한다

 

대처방법

  • 입출력값 검증, 보안 라이브러리 사용

 

CORS(Cross-Origin Resource Sharing), 교차 출처 리소스 공유

웹 개발자라면 진짜 무조껀 만나봤을 cors 정책

cors 관련 이슈를 만났을 때는 우리가 cors라는 정책을 위반했기 때문에 나오는 현상인데 사실 cors라는 정책이 있어서 우리가 안전하게 Resource를 받아올 수 있었던 것이다교차 출저 리소스 공유에 대해 좀 쉽게 말하면, 다른 출처에 대한 리소스(자원)에 대한 걸 허가 해줄꺼냐 말꺼냐라는 의미

 

여기서 SOP(Same Origin Policy) 라는 정책과 비교가 되는데 다른 Origin으로 요청을 보낼 수 없도록 금지하는 브라우저의 기본적인 보안 정책이다.

즉, 동일한 Origin으로만 요청을 보낼 수 있게 하는 것이다

 

하지만 SOP으로 하기엔 너무나도 제약이 많고 서로 다른 Origin들끼리 통신을 해야하는일이 너무나도 많아졌기 때문에 새로운 정책이 필요했는데 다른 Origin으로도 요청을 보낼 수 있는 새로운 정책으로  CORS가 나온 것이다원래대로라면 SOP에 의해 막히게 될 요청을 풀어주는 정책이라고 보면됨

 

만약 이런 정책이 없다면? CSRF공격이 진짜 자유롭게 이루어지겠지?

 

 

** 여기서 Origin은 프로토콜, 도메인, 포트번호을 합친 의미

https://ddangjiwon:8080/posts/123456?data=1234

# Origin
https://ddangjiwon:8080

 

서버에서 cors 설정을 하거나, 프록시 서버 사용하면 해결

 

[SpringBoot] CORS 설정

CORS(Cross Origin Resource Sharing) Origin 이 다른 경우에 자원을 주고 받을 수 있도록 하는 http 통신 프로토콜 요청하는 클라이언트와 응답해야하는 서버의 Origin 이 다른 경우 CSRF(Cross-Site Request Forgery)나

ddangjiwon.tistory.com

 

'CS' 카테고리의 다른 글

[CS] UI & UX에 대해  (0) 2023.01.29
[CS] 웹에서 일어나는 Push, Pull, Polling, WebSocket에 대해  (0) 2023.01.29
[CS] HashTable & Set & Map에 대해  (0) 2023.01.21
Git Flow 전략에 대해  (0) 2023.01.10
[CS]가상 메모리, 페이징과 세그멘테이션에 대해  (0) 2023.01.07
  • CSRF(Cross-Site Request Forgery), 사이트 간 요청 위조
  • XSS(Cross-Site-Script(Scripting)), 크로스 사이트 스크립팅
  • CORS(Cross-Origin Resource Sharing), 교차 출처 리소스 공유
'CS' 카테고리의 다른 글
  • [CS] UI & UX에 대해
  • [CS] 웹에서 일어나는 Push, Pull, Polling, WebSocket에 대해
  • [CS] HashTable & Set & Map에 대해
  • Git Flow 전략에 대해
땅지원
땅지원
신입 개발자의 우당탕탕 기술 블로그

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.