jongviet

June 1, 2021 - 웹 보안 관련 기본(get&post 분기처리, session, admin account) 본문

Spring legacy

June 1, 2021 - 웹 보안 관련 기본(get&post 분기처리, session, admin account)

jongviet 2021. 6. 1. 15:35

*6월1일

-웹 게시물&회원정보 삭제 권한 관련하여, 기본적으로 조치해야할 사안에 대해 알아보자.

 

1.세션이 유효한 관리자 레벨만 삭제 버튼 누를 수 있게 설정!
<c:if test="${ses.grade == 99}">
<button type="button" id="rmBtn" onclick="removeMember(this);">삭제</button>
</c:if>

2.삭제 누를 시 post 방식으로 삭제 정보 넘기기
<form action="./mctrl" method="post" id="rmForm">
    <input type="hidden" name="sign" value="del">
    <input type="hidden" name="email"> 
</form>

//button에 onClick="removeMember(this);"로 던지면, function removeMember(obj) {console.log(obj) }로 받아올 수 있음!!  -> this이기에 버튼 태그 자체가 잡힘!
<script>
function removeMember(obj) {
    let email = $(obj).closest("tr").children("td").eq(0).text();
    $("input[name=email]").val(email);  //이메일값을 인풋안에 value로 삽입
    $("#rmForm").submit(); //form 태그 자체 submit 시키기
}
</script>

3.Control단에서 post인지 get인지에 따라 검증 절차 필요! 왜냐하면 주소창에 get으로 그냥 던져도 변수값들이 맞으면 작동되기 때문!
-세션값 보유 + 버튼 클릭 기준으로만 삭제되게!!
String method = req.getMethod(); //post
if(method.equalsIgnoreCase("post")) {  //post인 경우에만 삭제 service 진행!!
    String email = req.getParameter("email");
    boolean isUp = msv.removeMember(email);
}

Comments