회원정보 수정에서 채택완료
/bbs/register_form_update.php 에서
아래와 같은 검사가 왜 필요한지 모르겠습니다.
if (trim($_POST['mb_id']) != $mb_id)
alert("로그인된 정보와 수정하려는 정보가 틀리므로 수정할 수 없습니다.\\n만약 올바르지 않은 방법을 사용하신다면 바로 중지하여 주십시오.");
어짜피 쿼리할 때 $mb_id로 넣고 => where mb_id = '$mb_id' ";
$mb_id는 위에서 세션값으로 받아오기 때문에 임의 수정이 불가능한데 위와같은 검사를 해주는 이유가 무엇인가요?
답변 2개
상단에
if($w == 'u')
$mb_id = isset($_SESSION['ss_mb_id']) ? trim($_SESSION['ss_mb_id']) : '';
코드가 있습니다. 수정모드일 때 $mb_id 는 로그인한 유저의 ID 값을 지닙니다.
if (trim($_POST['mb_id']) != $mb_id)
alert("로그인된 정보와 수정하려는 정보가 틀리므로 수정할 수 없습니다.\\n만약 올바르지 않은 방법을 사용하신다면 바로 중지하여 주십시오.");
어떤 부정한 툴을 사용하여 (등등), 로그인한 ID 와 수정하려는 회원정보 ID 값이 다른 경우를 막고자 하는 코드입니다.
ex. A회원이 로그인한 뒤, 부정한 방법을 사용하여 B회원의 회원정보를 수정하려고 할 때
답변에 대한 댓글 2개
DB 저장이 세션 id 로 저리하는 것으로 2차적 예방의 성격으로 처리도 시키고,
저장이 되든, 안되든 부정적인 접근에 대해서 '경고'할 수는 있을 것입니다.
(로그인 -> 정보수정 -> 수정시키지 못하는 id 를 크롬 개발자 도구로 수정하는 등의 방법 사용)
물론, 이러한 노파심 코드는 개발자의 취향의 영역일 수는 있습니다.
댓글을 작성하려면 로그인이 필요합니다.
경고창을 출력해 주는 효과도 있고 혹시나 그 이후의 코딩에서 실수를 하는 걸 예방하는 효과도 있는 거죠.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
$_POST['mb_id'] 값이야 충분히 변경가능하니까 신경쓰지 않아도 되고..