Spring Security CSRF 설정으로 인한 403 에러 해결하기

‍bng4535·2023년 3월 31일
0

문제 상황

회원정보를 수정하기 위해 form 태그 안의 input 태그에 값을 입력하고 컨트롤러에 요청

문제

  • 올바른 Url과 Method로 요청을 했는데 자꾸 403에러가 발생했다.

해결

  • 403에러가 발생하는 이유 중 하나로 Spring Security에서 기본적으로 사용하는 CSRF(Cross-Site Request Forgery) 방어 기능이 있다.
  • CSRF는 악의적인 사용자가 인증된 사용자의 권한으로 비인가적인 요청을 보내는 공격으로, 이를 방어하기 위해 Spring Security는 CSRF 토큰을 사용하여 요청이 유효한지 검사한다.
  • CSRF 토큰이 유효하지 않은 경우, Spring Security는 403 Forbidden 에러를 반환한다. 따라서 CSRF 방어 기능을 사용하고 있다면, CSRF 토큰을 함께 전송해야 한다.
<form th:action="@{/myform}" method="post">
    <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
    <!-- 폼 필드들 -->
    <button type="submit">전송</button>
</form>
profile
공부 기록

0개의 댓글