token 생성 관련 질문드립니다.
본문
게시판에 글을 작성하는데
bbs/write_update.php의 내용을 살펴보면
check_write_token($bo_table);
함수를 통해 토큰을 비교하는데요.
lib/common.lib.php에서 check_write_token($bo_table) 함수를 보면
function check_write_token($bo_table)
{
if(!$bo_table)
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
$token = get_session('ss_write_'.$bo_table.'_token');
set_session('ss_write_'.$bo_table.'_token', '');
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
return true;
}
$token과 $_REQUEST['token']을 비교해서 같지 않으면 alert를 띄우더라구요.
그런데 $_REQUEST array를 확인하면 token이 없어서 alert를 띄우며 게시판에 글을 등록하지 못하는 상황입니다.
저 오류 관련하여 검색하던중에 어떤분이 댓글로 남기신 내용중에
세션에 저장된 토큰과 현재페이지에서 생성한 토큰을 비교하는 내용이라고 봤는데
그렇다면 write_update.php에서 check_write_token 함수를 타기 전에
$_REQUEST['token'] = get_write_token($bo_table);
을 추가하여 토큰을 생성하여 세팅해주는 것이 올바른 방법이 맞는건가요?
테스트결과 게시글은 정상적으로 등록이 되는데, 과연 이게 맞는 방법인지 궁금합니다.
답변 1
자답입니다. common.js에서 클릭이벤트 받을 때 prepend하는 부분에서 input 태그가 주석처리 되어있어서 $_REQUEST['token']값이 빈 문자열이었습니다.
위 게시물에서 확인하였습니다.