에어버스
10
2021-04-08 00:55:23 작성 2021-04-08 01:14:49 수정됨
1
115

동적으로 생성하는 폼은 CSRF 토큰을 어떻게 넘겨야 하나요?


var form = document.createElement("form");
form.method = "post";
form.action = "/url";

var something = document.createElement("input");
something.setAttribute("name", "something");
something.setAttribute("value", "something");
...

form.appendChild(something);
...

document.body.appendChild(form);
form.submit();

Java Spring에서: 자바스크립트를 이용하여 동적으로 hidden폼을 생성, post 방식으로 다른 url로 값을 넘기려고 했는데요.

스프링 시큐리티 때문에(CSRF 토큰이 넘어가지 않음) 403 forbidden 에러를 띄우더라구요.


혹시나 싶어

var sendCsrfToekn = document.createElement("input");
sendCsrfToken.setAttribute("name", "${_csrf.parameterName}");
sendCsrfToken.setAttribute("value", "${_csrf.token}");

이런식으로도 넘겨보았는데, 결과가 같았고요: 403 forbidden

혹여나 다른 방법을 써야 하는가 싶어 질문 남겨봅니다.


감사합니다.

0
  • 답변 1

  • 제타건담
    7k
    2021-04-08 01:10:44

    이글 에서 보시면 form 방식으로 넘기는 것도 있고 ajax 전송시 헤더에 값을 설정해서 보내는 방법도 있습니다..

    상황에 맞춰서 작성하시면 될 것 같은데요..

    어차피 csrf 는 javascript 로 hidden 태그 생성하시지 마시고 글에 링크되어 있듯이 form hidden 태그에 직접 입력되게끔 설정하면 될듯 합니다..

  • 로그인을 하시면 답변을 등록할 수 있습니다.