그누보드 글쓰기 소스

그누보드 글쓰기 소스

QA

그누보드 글쓰기 소스

본문

게시판에 글쓰는부분의 소스를 보고있습니다.

 

3660616922_1546932884.829.png

 

여기보시면 토큰체크를 하는데 사용되는 bo_table 이라는 변수는 common.php 파일의

 

3660616922_1546932991.9396.png

 

이부분인가요?

 

글을 작성하고 전송되는값을 캡쳐했을때 

캡쳐되는 아래의 사진에들어가는 token에는 어떤값들이들어가나요?

 

3660616922_1546933194.1444.png

이 질문에 댓글 쓰기 :

답변 1

게시판 글쓰기 하실 때

/js/common.js 에서 토큰을 생성합니다.



function get_write_token(bo_table)
{
    var token = "";
    $.ajax({
        type: "POST",
        url: g5_bbs_url+"/write_token.php",
        data: { bo_table: bo_table },
        cache: false,
        async: false,
        dataType: "json",
        success: function(data) {
            if(data.error) {
                alert(data.error);
                if(data.url)
                    document.location.href = data.url;
                return false;
            }
            token = data.token;
        }
    });
    return token;
}
 
$(function() {
    $(document).on("click", "form[name=fwrite] input:submit, form[name=fwrite] button:submit, form[name=fwrite] input:image", function() {
         
        var f = this.form;
        if (typeof(f.bo_table) == "undefined") {
            return;
        }
        var bo_table = f.bo_table.value;
        var token = get_write_token(bo_table);
        if(!token) {
            alert("토큰 정보가 올바르지 않습니다.");
            return false;
        }
        var $f = $(f);
        if(typeof f.token === "undefined")
            $f.prepend('<input type="hidden" name="token" value="">');
        $f.find("input[name=token]").val(token);
        return true;
    });
});

게시판의 이름이 들어갑니다.
토큰값이 들어가는 이유는 외부에서 프로그램 등을 이용한 자동 글쓰기나 정상적인 루트가 아닌 다른 루트로 접근하여 글을 쓰는 경우를 방지하기 위해서입니다

공부 중이시라면 분석해보세요.
/bbs/write_token.php 에서 생성된 값을 /bbs/write_update.php 에서 체크합니다.
체크하는 함수가 check_write_token() 입니다.

그냥 소스를 읽지 마시고요. 어떻게 동작하는지 하나 하나 뜯어보시기 바랍니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 17
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT