[그누보드] 2012년 6월 12~15일자 패치 4.35.02

페이지 정보

조회 4,744회 작성일 2012-06-16 03:02 URL https://webdraw.kr/notice/190

본문

웹드로우에서 제작된 홈페이지 중 그누보드를 사용하는 홈페이지에 대한 2012년 6월 12~15일자 패치 입니다. 패치전 반드시 해당파일을 백업 후 실행하시길 바랍니다.
다운로드한 후 압축을 푸시고 FTP로 접속하여 압축을 푼 파일 전체를 덮어 씌우기하시면 됩니다.
※ 주의 : 관리자모드 버전정보를 확인해 보시고 이미 패치가 되어 있다면 안하셔도 되며, 패치 날짜에 맞게 순차적으로 패치를 하여야 합니다. 패치가 어려우신 분은 별도로 문의 바랍니다.
주문형 제작과 해당 파일의 기능추가일 경우 해당파일을 일일이 비교하며 소스를 수정해야 합니다.
################
4.35.02 (2012.06.15)
: 4.35.01 의 세션테이블 생성할때 utf-8 사용시 세션테이블을 utf8 로 생성 (내일을위하여 님이 알려주시고 모바일님이 해결해 주셨습니다.)

lib/dbsession.lib.php 에 추가하세요.

if (strtolower($g4['charset']) == 'utf-8') {
$sql .= " DEFAULT CHARSET=utf8 ";
}
4.35.01 (2012.06.13)
: 4.35.00 에서 cookie_domain 의 설정등이 누락되어 서브도메인간의 세션 공유가 되지 않던 오류를 수정 (cosy님께서 알려주셨습니다.)
: 세션 데이터의 유지시간이 기본 1440초(24분)으로 짧아 10800초(3시간) 동안 유지되도록 수정
: 세션 테이블 생성시 날짜시간에 인덱스를 추가

common.php 를 아래와 같이 수정하세요.

//-------------------------------------------
// SESSION 설정
//-------------------------------------------
include_once("$g4[path]/lib/dbsession.lib.php");
$session = new g4_dbsession();
session_set_save_handler(array($session, 'open'),
array($session, 'close'),
array($session, 'read'),
array($session, 'write'),
array($session, 'destroy'),
array($session, 'gc'));

session_set_cookie_params(0, "/");
ini_set("session.cookie_domain", $g4['cookie_domain']);
ini_set("session.cache_expire", 180); // 세션 캐쉬 보관시간 (분) 180분 == 3시간
ini_set("session.gc_maxlifetime", 10800); // session data의 garbage collection 존재 기간을 지정 (초) 10800초 == 3시간
ini_set("session.use_trans_sid", 0); // PHPSESSID를 자동으로 넘기지 않음
ini_set("url_rewriter.tags",""); // 링크에 PHPSESSID가 따라다니는것을 무력화함 (해뜰녘님께서 알려주셨습니다.)

if (isset($SESSION_CACHE_LIMITER))
@session_cache_limiter($SESSION_CACHE_LIMITER);
else
@session_cache_limiter("no-cache, must-revalidate");

@session_start();
//-------------------------------------------

lib/dbsession.lib.php 를 아래와 같이 수정하세요.

$sql = " CREATE TABLE `$g4[session_table]` (`ss_id` CHAR(32) NOT NULL, `ss_data` TEXT NOT NULL, `ss_datetime` DATETIME NOT NULL, PRIMARY KEY (`ss_id`), KEY `ss_datetime` (`ss_datetime`)) ENGINE = MYISAM ";
4.35.00 (2012.06.12)
: SESSION Data 가 노출되지 않도록 DB SESSION 사용 (HSEngine 님께서 알려 주셨습니다.)
: $_SERVER['PHP_SELF'] 변수를 사용한 XSS 취약점 수정

lib/dbsession.lib.php 파일 추가

config.php 파일에 추가하세요.

$g4['session_table'] = $g4['table_prefix'] . "session"; // 세션 테이블

common.php 파일에서

SESSION 관련 코드를 모두 삭제하신 후 아래 코드로 대체하세요.

//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
$_SERVER['PHP_SELF'] = htmlentities($_SERVER['PHP_SELF']);

//-------------------------------------------
// SESSION 설정
//-------------------------------------------
include_once("$g4[path]/lib/dbsession.lib.php");
$session = new g4_dbsession();
session_set_save_handler(array($session, 'open'),
array($session, 'close'),
array($session, 'read'),
array($session, 'write'),
array($session, 'destroy'),
array($session, 'gc'));

ini_set("session.use_trans_sid", 0); // PHPSESSID를 자동으로 넘기지 않음
ini_set("url_rewriter.tags",""); // 링크에 PHPSESSID가 따라다니는것을 무력화함 (해뜰녘님께서 알려주셨습니다.)

if (isset($SESSION_CACHE_LIMITER))
@session_cache_limiter($SESSION_CACHE_LIMITER);
else
@session_cache_limiter("no-cache, must-revalidate");

@session_start();
//-------------------------------------------
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 
 
자료실 바로가기

MENU