테스트 사이트 - 개발 중인 베타 버전입니다

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

주민 3년 전 조회 2,231

 

안녕하세요.

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개

채택된 답변
+20 포인트
3년 전

주석처리한 것은 <올바른 방법으로 수정~~~>이고 경고창 문구는 <올바른 방법으로 이용~~>

내용이 다른데 저 곳을 주석처리한들 무슨 소용인가요?

 

경고창 나오는 것은

등록버튼을 누르면 자바스크립트에서 토큰을 생성(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;

 

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

주민
3년 전
다시 https 올리고 테스트 해보니

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'])
이 부분에서 이슈가 있습니다.

댓글을 작성하려면 로그인이 필요합니다.

1년 전

이 코드는 게시글 작성 시 사용되는 토큰을 처리하는 부분입니다. 여기서 각 줄의 역할을 설명드릴게요.
$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 값을 빈 문자열로 설정합니다.
이는 토큰을 초기화하여, 해당 토큰이 다시 사용되지 않도록 합니다.
이 두 줄의 코드는 주로 보안과 관련이 있습니다. 게시글 작성 시, 사용자가 제출한 토큰과 세션에 저장된 토큰을 비교하여 일치하지 않으면 제출을 막는 방식으로 동작합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

3년 전

config 파일에서 도메인을 http로 지정해두셨는지 한번 확인해보셔야 할거 같습니다. 아니면 

js를 https로 불러와서 스크립트 에러가 나서 그럴수 있습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

주민
3년 전
https 에서는 에러가 계속 나고 있습니다.. ㅠ.ㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인