CSRF

이윤근·2021년 8월 5일
0

CSRF

*Web application Security
:개발자들이 웹사이트,모바일 어플,웹 API 등을 만들 때에 해커들의 공격을 막기 위해서 보안은 필수사항
해커들의 공격중 SQL injection,XSS,CSRF 등이있다.

1)정의

:다른 origin(cross-site)에서 유저가 보내는 요청(request)을 조작하는 것
ex)이메일에 첨부된 링크를 누르면 내 은행계좌의 돈이 빠져나감
:해커가 직접 데이터를 접근할수 없다.
:다른 origin이기 때문에 response에 직접 접근할 수 없음.

2)공격하기 위한 조건

-쿠키를 사용한 로그인
:유저가 로그인 했을 때, 쿠키로 어떤 유저인지 알 수 있어야함.
-예측할 수 있는 요청/parameter를 가지고 있어야함.
:request에 해커가 모를 수 있는 정보가 담겨있으면 안됨.

3)공격하는 방법

(1)Get 요청으로 CSRF 공격하기
예를들어 계좌이체를 사용되는 GET 요청을 이용해 타인의 계좌번호를 본인의 계좌로 바꿔서 GET요청을 하게 바꿔주는 것.
타인인척 타인이 타인의 브라우저 환경에서 GET요청을 보내게 만들어주는 것. 그래서 해커는 타인에게 그렇게 하도록 유도하여 공격을 한다.

(2)POST 요청으로 CSRF 공격하기
:비밀번호 변경에 사용되는 POST 요청으로 공격.해커가 웹사이트를 만들어 document에 form을 만들어 숨겨준다. 그후 그페이지가 로딩되는 순간 비밀번호를 변경하는 것을
host에게 요청하여 비밀번호를 변경한다

4)막는 방법

(1)CSRF 토큰 사용하기
:서버측에서 CSRF 공격에 보호하기 위한 문자열을 유저의 브라우저와 웹 엡에서만 제공

(2)Same-site cookie 사용하기
:같은 도메인에서만 세션/쿠키를 사용할 수 있다.

profile
성실한코딩러

0개의 댓글