관리자 - 회원수정 - 삭제 코드 오류 수정

불당   
   조회 13298   추천 0     비추천 0    

 
보안을 위해서 post_delete로 넘겨야 하는데, del로 넘기고 있습니다.
adm/member_delete.php를 GET type으로 바꾸는 것은 정답이 아니고 틀린 답 입니다.
post_delete를 쓸 수 있게 수정해 주는 것이 맞습니다.
 
adm/member_form의 삭제 버튼 부분의 코드를 다음과 같이 수정 합니다.
 
    <input type=button class=btn1 value='  삭  제  ' onclick="post_delete('./member_delete.php','<?=$mb[mb_id]?>');">&nbsp;
 
그리고 밑에 아래 코드를 추가 합니다.
 
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
{
 var f = document.fpost;
 if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
    f.mb_id.value = val;
    f.admin_password.value = document.fmember.admin_password.value;
  f.action         = action_url;
  f.submit();
 }
}
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst'   value='<?=$sst?>'>
<input type='hidden' name='sod'   value='<?=$sod?>'>
<input type='hidden' name='sfl'   value='<?=$sfl?>'>
<input type='hidden' name='stx'   value='<?=$stx?>'>
<input type='hidden' name='page'  value='<?=$page?>'>
<input type='hidden' name='token' value='<?=$token?>'>
<input type='hidden' name='w'     value='d'>
<input type='hidden' name='mb_id'>
<input type='hidden' name='admin_password'>
</form>
추가로, adm/member_delete.php의 9 라인에 아래의 코드를 추가하면
XSS/CSRF 방어를 위한 조치가 됩니다 (이부분에는 코드가 누락되어 있다는)
 
if ($member[mb_password] != sql_password($_POST['admin_password'])) {
    alert("패스워드가 다릅니다.");
}
- opencode.co.kr -