똑같은 삽질은 2번 하지 말자

Laravel CSRF 대책 본문

카테고리 없음

Laravel CSRF 대책

곽빵 2021. 12. 23. 15:28

https://laravel.kr/docs/5.3/csrf

 

라라벨 5.3 - CSRF 보호하기

라라벨 한글 메뉴얼 5.3 - CSRF 보호하기

laravel.kr

 

라라벨 에서의 csrf대책

( csrf? 사이트 간 요청 위조는 인증된 사용자를 대신해서 승인되지 않은 커맨드를 악의적으로 활용하는 것 )

 

이 필드를 추가하면

{{ csrf_field() }}

 

밑의 태그처럼 form안에서 변환이된다. 

<input type="hidden" name="_token" value="loiuhJKkjhUI664hjgk6jhg6fjg675JHGGOogo">

value속성의 랜덤문자열이 CSRF토큰이다.

이 CSRF 토큰을 이용해서 자신의 사이트만 POST 요청을 받는게 가능해진다.

(여기서 POST요청은 미들웨어에서 CSRF 검증을 하지 않겠다고한 요청에 대해서만 이다.)

 

토큰기반의 인증시스템(JWT같은)을 이용하면 CSRF방지는 거의 자동적으로 이루어 진다고 보면 되는데,

토큰의 값을 클라이언트쪽에서 헤더에 포함시켜서 날리기때문에 그 토큰이 어디에 저장되어있는지를

악성스크립트만으로 찾아 헤더에 포함시켜 날리는건...좀 어렵다고 본다.

 

반면에, 세션기반인증에서는 request를 날릴때 로그인이 되어있는 상태이면 자동으로 쿠키(인증정보)가 포함되기 때문에

CSRF 공격에 노출되어 있다고 생각한다. 

 

CSRF에 대해 잘 설명해 놓은 글

https://swk3169.tistory.com/24

 

[Web] CSRF(Cross Site Request Forgery) 공격 기법

1. CSRF(Cross-site request forgery) 1.1 정의 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는..

swk3169.tistory.com

 

xss 와 csrf의 차이

https://securitymanjoseph94.tistory.com/12

 

XSS와 CSRF 차이점

 XSS와 CSRF의 차이점 오늘은 헷갈리기 쉬운 XSS와 CSRF의 차이점을 보도록 하겠습니다. 차이점을 설명하기에 앞서 XSS, CSRF가 뭔지 설명을 하면서 시작하곘습니다. XSS(CSS) 크로스사이트 스크립트 란

securitymanjoseph94.tistory.com

 

 

Rails에서의 CSRF

https://heewon26.tistory.com/272

 

Rails ActionController::InvalidAuthenticityToken 에러 (Rails의 CSRF 대책)

해결방법 application_controller.rb에 protect_from_forgery 추가 class ApplicationController < ActionController::Base protect_from_forgery end 헤더 태그에 csrf_meta_tags 추가(아마 자동으로 추가 되어..

heewon26.tistory.com

 

Comments