https 적용 후 올바른 방법으로 이용해 주십시오. 에러가 납니다.

안녕하세요.
https 적용 후 글쓰기 하면 올바른 방법으로 이용해 주십시오. 라는 에러가 발생하였습니다.
어떻게 해야 할까요?
if (get_session('ss_bo_table') != $_POST['bo_table'] || get_session('ss_wr_id') != $_POST['wr_id']) {
//alert('올바른 방법으로 수정하여 주십시오.', get_pretty_url($bo_table));
}
주석처리해도 계속 나오는데 말입니다.. ㅡ_ㅡ;;;
답변 3개 / 댓글 2개
주석처리한 것은 <올바른 방법으로 수정~~~>이고 경고창 문구는 <올바른 방법으로 이용~~>
내용이 다른데 저 곳을 주석처리한들 무슨 소용인가요?
경고창 나오는 것은
등록버튼을 누르면 자바스크립트에서 토큰을 생성(commn.js 마지막 부분)
bbs/write_update.php 상단 check_write_token(~)함수에서 토큰 체크
이때 나오는 것입니다(이것 주석하면 경고 안나옴)
이거 토큰이 어떻게 되는지 테스트 하려면 상당히 머리 아플텐데요
어떤 이유로 생성되어 세션에 저장 된 토큰과 post로 넘어온 토큰 값이 달라서 입니다
자바스크립트 에러가 있으면 저 토큰 부분이 실행이 안되어 당연히 경고창 나옵니다
common.js에서
var token = get_write_token(bo_table);
alert(token); <---추가 //이 경고창이 안 나오면 자바스크립트 에러 때문인 것이구요
위의 토큰값과 bbs/write_update.php 상단에 다음 코드를 넣어서 나온 값이 어떻게 되는지 상황을 보세요
$token = get_session('ss_write_'.$bo_table.'_token');
echo $token; exit;
이 코드는 게시글 작성 시 사용되는 토큰을 처리하는 부분입니다. 여기서 각 줄의 역할을 설명드릴게요.
$token = get_session('ss_write_'.$bo_table.'_token');:
$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);
이 줄은 세션에서 ss_write_{$bo_table}_token이라는 이름의 값을 가져와 $token 변수에 저장합니다.
이 토큰은 게시글 작성 시 중복 제출을 방지하고, CSRF(Cross-Site Request Forgery) 공격을 막기 위해 사용됩니다.
set_session('ss_write_'.$bo_table.'_token', '');:
이 줄은 세션에 저장된 ss_write_{$bo_table}_token 값을 빈 문자열로 설정합니다.
이는 토큰을 초기화하여, 해당 토큰이 다시 사용되지 않도록 합니다.
이 두 줄의 코드는 주로 보안과 관련이 있습니다. 게시글 작성 시, 사용자가 제출한 토큰과 세션에 저장된 토큰을 비교하여 일치하지 않으면 제출을 막는 방식으로 동작합니다.
답변을 작성하려면 로그인이 필요합니다.
write_update.php의 아래 부분에서 넘어서
// 토큰체크
check_write_token($bo_table);
common.lib.php 의
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
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;
}
=> if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
이 부분에서 이슈가 있습니다.