[SpringBoot] 403(Forbidden) 에러 발생

미나·2023년 11월 15일

새로알게된 정보

목록 보기
20/23
스프링부트를 하면서 아래와 같은 Forbidden 에러가 발생할때가 있었다.

' POST http://localhost:8999/host/manage/addmain 403 (Forbidden) '

아래와 같이 form태그 안에 th:action이 없는경우 에러가 발생한다.
<form th:object="${questionForm}" method="post">
        <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}" />
th:action 속성을 삭제하면 CSRF 값이 자동으로 생성되지 않기 때문에 위와 같이 CSRF 값을 설정하기 위한 hidden 형태의 input 엘리먼트를 수동으로 추가한다.
CSRF 값을 수동으로 추가하기 위해서는 위와 같이 해야한다. 이것은 스프링 시큐리티의 규칙이다.
간단하지만 몰랐다면 풀수없었던 부분이였다. form안에 input을 여러개 작성하여 script에서 form action을 작성하게되면서 에러가 자주 발생하였다. 기억하자. CSRF

0개의 댓글