token, XSS, CSRF

ssjjyy·2022년 5월 2일
0

코딩공부

목록 보기
36/49

1. token

프로그래밍에서의 토큰 : 더 이상 나눌 수 없는(문법적으로) 기본적인 언어요소
네트워크에서의 토큰 : 네트워크를 따라 돌아다니는 일련의 비트열(문자열)로 컴퓨터는 이 토큰을 잡았을 때만 네트워크에 메시지 전송이 가능하다. 각 네트워크에는 오직 하나의 토큰만 존재해 여러대의 컴퓨터가 동시에 메시지 전송하는 것을 차단한다.

토큰 발급

토큰을 이용하는 시스템에 유저가 로그인을 시도할 때 일치하는 유저정보가 DB에 있다면 토큰을 유저의 브라우저로 전달한다.

토큰 사용

브라우저는 이 토큰을 가지고 있다가 요청을 보낼 때 토큰값을 같이 보내고 서버에서 이를 검증하고 응답한다.

2. XSS(Cross Site Scripting)

XSS는 보안이 취약한 사이트에서 크래킹을 목적으로 하는 스크립트를 넣어 사용자가 이 스크립트를 읽게 하여 유저의 정보를 빼오는 공격 방법이다.

사용하는 기법의 예시를 몇 가지 들어보겠다.

a. 스크립트 태그

<script>alert('XSS');</script>
스크립트 태그 안의 내용을 실행시키는 방법.

b. JS 링크

<a href="javascript:alert('XSS')">XSS</a>
JS의 스크립트를 링크 태그를 이용해 실행한다.

c. 이벤트 속성

<img src="#" onerror="alert('XSS')">
src에 임의의 주소를 넣고 onerror 부분에 원하는 악성 코드를 넣는다.

이 외에도 여러가지 기법들이 있다.

Dompurify와 같은 DOM(Document Object Model)을 사용하면 예방이 가능하다.

3. CSRF(Cross-Site Request Forgery)

사이트 간 요청 위조.
사용자의 의지와 무관하게 크래커가 의도한 작업을 하게 해 공격하는 방법이다.
예를 들어 어떤 사이트에서 사용자가 https://www.aaa.com/logout 코드가 삽입된 페이지를 열었을 때 로그아웃을 하게된다면 이는 사용자의 뜻과 무관한 작업이 벌어지는 것이다.

profile
수학과 코딩

0개의 댓글