그누보드 글쓰기 소스 2

그누보드 글쓰기 소스 2

QA

그누보드 글쓰기 소스 2

본문

https://sir.kr/qa/285084?page=1&page=1&unanswered=0&s_tag=&cwin=&vsst=&vpage=1

 

위 글에대한 질문입니다.

 

제가 자바스크립트는 아무것도모르는데 get_write_token 함수의 매개변수로 게시판이름을 넣으면 
어떤 문자열이 어떤암호화?가되서 나오나요? 나오는값은 36f45ce16a007d2512ed4acec30784b5 
요렇게나오던데...

이 질문에 댓글 쓰기 :

답변 1


function _token()
{
    return md5(uniqid(rand(), true));
}

// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
function get_token()
{
    $token = md5(uniqid(rand(), true));
    set_session('ss_token', $token);
    return $token;
}

// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
function check_token()
{
    set_session('ss_token', '');
    return true;
}

common.lib.php에 있는 토큰 관련 함수들입니다.

 

문자열이 암호화된다기보다 그냥 랜덤한 문자열이 생성됩니다.

그누보드 글쓰기의 경우 write.php->write.update.php의 순서대로 해당 페이지가 열렸을 때 글쓰기가 되어야하는데,

아무래도 오픈소스다보니 누구나 쉽게

외부 글쓰기 프로그램이나 접근을 통해 바로 wirte.update.php에 필요한 값만 넣어 권한이나 글쓰기 양식과 상관없이 db에 데이터를 집어넣을 수 있기에,

정상적인 접근 방식일때만 동작 가능하게, 확인 하는 방식이라고 보시면 됩니다.

 

보안을 위해 존재하는 소스입니다

1961번줄에 POST로 넘어온 토큰과 세션에 저장된 토큰 비교 라고 주석처리되어있고
function check_token()
{
    set_session('ss_token', '');
    return true;
}

write.php 에는
set_session('ss_bo_table', $_REQUEST['bo_table']);
set_session('ss_wr_id', $_REQUEST['wr_id']);

이렇게 2개의 세션함수가있습니다. 어떤걸 비교하는건가요?

셋다 키값이 다른거같은데...

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

회원로그인

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