[Spring] 시큐리티 CSRF

Whatever·2022년 2월 24일
0

Spring(스프링)

목록 보기
27/29

수정, 삭제하는데 access denied가 뜬다면???

시큐리티를 적용중인 URL에서 수정이나 삭제할 때는 권한이 있어야 하는데 권한을 유지하는 속성을 csrf라고 한다.

Form을 사용할 때 csrf는 항상 따라다닌다.

1. 먼저 taglib를 추가한다.

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

2. 수정할 form에 <sec:csrfInput/>를 적어준다.

<form:form modelAttribute="cusVO" id="frmEdit" method="post" action="/cus/detail">
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="feFirstName">고객번호</label>
      <form:input class="form-control" path="cusNum" placeholder="" value="${cusVO.cusNum}" /> </div>
    <div class="form-group col-md-6">
      <label for="feLastName">고객명</label>
      <form:input class="form-control" path="cusNm" placeholder="" value="${cusVO.cusNm}" /> </div>
  </div>
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="feEmailAddress">연락처</label>
      <form:input class="form-control" path="pne" placeholder="" value="${cusVO.pne}"/> </div>
  </div>
  <div class="form-group">
    <label for="feInputAddress">Address</label>
    <form:input class="form-control" path="addr" value="${cusVO.addr}" readonly /> </div>
  <div class="form-row">

  </div>
  <button type="button" id="btnEdit" class="btn btn-success">정보 수정하기</button>
  <button type="button" id="btnConfirm" class="btn btn-sm btn-outline-info" hidden="true">확인</button> <!-- hidden="true" -->
  <button type="button" id="btnCancel" class="btn btn-sm btn-outline-danger" hidden="true">취소</button>
  <a class="btn btn-accent" href="/cus/list">목록으로</a>
  <button type="button" class="btn-sm btn-secondary" onclick="makePdf()">PDF다운로드</button>
  <sec:csrfInput/>
</form:form>
  <sec:csrfInput/>

이렇게 하면 form을 전송할 때 action="/cus/detail"으로 가는데, 권한이 유지되어 전송된다.

0개의 댓글