본문 바로가기
  • 삽질하는 자의 블로그
공부용-사이드프로젝트/Nodejs - 미니프로젝트-쇼핑몰

extra) input type = "file" 을 사용할 때, CsrfToken의 제출방법!

by 이게뭐당가 2022. 9. 25.

csrf Attack 에 대하여 배운 이후로, 공격을 방지하기 위한 csrfToken을 항상 사이트에 적용시켜 놓는다.

 

1. csruf 패키지로, csrf token을 활성화 시키고

2. csrf 패키지를 불러온 후, app.use( csrf() ) 를 통해, 작동시킨다.

3. middelware 혹은, Constroller에서,  render할 페이지에 csrf token을 '나의 HTML'에 보낸 후

4. '나의' 브라우저에만 있는 csrf token을 접속시, 서버에 제출함으로써, '나의페이지가 맞음을 확인받는다'

 

중요한것은 브라우저에서 서버로 제출 시 방법이다.

csurf official
나의 제출

즉, 쿼리매개변수로 제출되는 형태이다.

제출을 하게되면 URL에는  domain/login?_csrf=" csrfToken"  의 식으로 제출될것이다.

그런데 FORM에 enctype을 사용해서, file과 정보를 보내면 저같은 식의 value는 제출되지 않는다.

 

그러면 어떻게 해야할까?

바로!

FORM의 ACTION 자체에 쿼리 매개변수를 담아버리면 된다!

 

 

요렇게!

끝!

댓글