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

그누보드 글쓰기 소스 채택완료

EAZY 6년 전 조회 2,080

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

 

 

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

 

 

이부분인가요?

 

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

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

 

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

답변 1개

채택된 답변
+20 포인트
잉끼s
6년 전

게시판 글쓰기 하실 때

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

</p>

<p>

function get_write_token(bo_table)

{

    var token = "";</p>

<p>    $.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;</p>

<p>                return false;

            }</p>

<p>            token = data.token;

        }

    });</p>

<p>    return token;

}</p>

<p> </p>

<p>$(function() {

    $(document).on("click", "form[name=fwrite] input:submit, form[name=fwrite] button:submit, form[name=fwrite] input:image", function() {

         

        var f = this.form;</p>

<p>        if (typeof(f.bo_table) == "undefined") {

            return;

        }</p>

<p>        var bo_table = f.bo_table.value;

        var token = get_write_token(bo_table);</p>

<p>        if(!token) {

            alert("토큰 정보가 올바르지 않습니다.");

            return false;

        }</p>

<p>        var $f = $(f);</p>

<p>        if(typeof f.token === "undefined")

            $f.prepend('<input type="hidden" name="token" value="">');</p>

<p>        $f.find("input[name=token]").val(token);</p>

<p>        return true;</p>

<p>    });

});</p>

<p>

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

답변에 대한 댓글 4개

E
EAZY
6년 전
함수의 매개변수인 bo_table 이건 글쓰기한 게시판의 이름이들어가나요? 그리고 저토큰이없다면 글을쓸수없나요?
볼피드
6년 전
게시판의 이름이 들어갑니다.
토큰값이 들어가는 이유는 외부에서 프로그램 등을 이용한 자동 글쓰기나 정상적인 루트가 아닌 다른 루트로 접근하여 글을 쓰는 경우를 방지하기 위해서입니다
E
EAZY
6년 전
제가 자바스크립트는 아무것도모르는데 get_write_token 함수의 매개변수로 게시판이름을 넣으면
어떤 문자열이 어떤암호화?가되서 나오나요? 나오는값은 36f45ce16a007d2512ed4acec30784b5
요렇게나오던데...
잉끼s
6년 전
공부 중이시라면 분석해보세요.
/bbs/write_token.php 에서 생성된 값을 /bbs/write_update.php 에서 체크합니다.
체크하는 함수가 check_write_token() 입니다.

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

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

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

로그인