관리자님, 그누보드 보안 위험 문제에 대하여 어떻게 생각하시는지요? > 자유게시판

자유게시판

관리자님, 그누보드 보안 위험 문제에 대하여 어떻게 생각하시는지요? 정보

관리자님, 그누보드 보안 위험 문제에 대하여 어떻게 생각하시는지요?

본문

@extract($_GET);
@extract($_POST);
@extract($_SERVER);
에 대한 보안 위험 문제입니다.

아래 블로그 참조해 보세요.
http://swbae.egloos.com/1860954

php 공식 사이트에서도 사용을 금하고 있는데요.
http://us2.php.net/manual/en/function.extract.php

이 문제에 대하여 어떻게 생각하시는지요?

PS:  아니 질문답변에 글올리는데 포인트를 걸다니... 포인트 없는 사람은 질문도 못하는 건가요?
추천
0
  • 복사

댓글 5개

extract 에 대한 보안패치가 초반기에 있었습니다.
개인적으로 get, post 는 사용의 편의상 어쩔 수 없다고 생각하고,
그 외(server 등) 수퍼 글로벌 변수는 풀어쓰지 않는게 좋지 않을까? 생각합니다.
또한 꼭 post,get,server,env 등.. 으로 구분해야 하는 중요키에 해당하는 값은 $_POST['변수'] 와 같이 잡아주면 됩니다.
(개인적으로 제가 작업시에는 이렇게 사용하고 있습니다.)

* 그누보드는 수퍼글로벌도 보안상 이유로 따로 처리하고 있으므로 현재상태에서 굳이 수정할 필요는 없다고 생각됩니다.
아래 코드고, 패치가 작년 10월이군요. ;;

ext_arr = array ('PHP_SELF', '_ENV', '_GET', '_POST', '_FILES', '_SERVER', '_COOKIE', '_SESSION', '_REQUEST',
                  'HTTP_ENV_VARS', 'HTTP_GET_VARS', 'HTTP_POST_VARS', 'HTTP_POST_FILES', 'HTTP_SERVER_VARS',
                  'HTTP_COOKIE_VARS', 'HTTP_SESSION_VARS', 'GLOBALS');
$ext_cnt = count($ext_arr);
for ($i=0; $i<$ext_cnt; $i++) {
    // GET 으로 선언된 전역변수가 있다면 unset() 시킴
    if (isset($_GET[$ext_arr[$i]])) unset($_GET[$ext_arr[$i]]);
}
http://www.milw0rm.com/exploits/7792
http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=65848

질답게시판에 포인트제도가 없으면 게시판이 죽습니다.
포인트를 걸어야 답변을 해주는.. ㅡ_
© SIRSOFT
현재 페이지 제일 처음으로