diff --git a/bbs/content.php b/bbs/content.php index 8aa2f36af..b46d6f338 100644 --- a/bbs/content.php +++ b/bbs/content.php @@ -19,7 +19,7 @@ if (!$co['co_id']) $g5['title'] = $co['co_subject']; -if (is_include_path_check($co['co_include_head'])) +if ($co['co_include_head'] && is_include_path_check($co['co_include_head'])) @include_once($co['co_include_head']); else include_once('./_head.php'); @@ -85,7 +85,7 @@ if(is_file($skin_file)) { echo '
'.str_replace(G5_PATH.'/', '', $skin_file).'이 존재하지 않습니다.
'; } -if (is_include_path_check($co['co_include_tail'])) +if ($co['co_include_tail'] && is_include_path_check($co['co_include_tail'])) @include_once($co['co_include_tail']); else include_once('./_tail.php'); diff --git a/bbs/qahead.php b/bbs/qahead.php index d4aaa4d6e..976f4d524 100644 --- a/bbs/qahead.php +++ b/bbs/qahead.php @@ -9,7 +9,7 @@ if (G5_IS_MOBILE) { include_once('./_head.php'); echo conv_content($qaconfig['qa_mobile_content_head'], 1); } else { - if(is_include_path_check($qaconfig['qa_include_head'])) + if($qaconfig['qa_include_head'] && is_include_path_check($qaconfig['qa_include_head'])) @include ($qaconfig['qa_include_head']); else include ('./_head.php'); diff --git a/bbs/qatail.php b/bbs/qatail.php index 8cc00e1a3..8b22bcf66 100644 --- a/bbs/qatail.php +++ b/bbs/qatail.php @@ -7,7 +7,7 @@ if (G5_IS_MOBILE) { include_once('./_tail.php'); } else { echo conv_content($qaconfig['qa_content_tail'], 1); - if(is_include_path_check($qaconfig['qa_include_tail'])) + if($qaconfig['qa_include_tail'] && is_include_path_check($qaconfig['qa_include_tail'])) @include ($qaconfig['qa_include_tail']); else include ('./_tail.php'); diff --git a/config.php b/config.php index 002a65db5..f17858912 100644 --- a/config.php +++ b/config.php @@ -5,7 +5,7 @@ ********************/ define('G5_VERSION', '그누보드5'); -define('G5_GNUBOARD_VER', '5.2.9'); +define('G5_GNUBOARD_VER', '5.2.9.2'); // 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음 define('_GNUBOARD_', true); diff --git a/js/common.js b/js/common.js index 8e2570bc7..ff2983bc5 100644 --- a/js/common.js +++ b/js/common.js @@ -459,6 +459,7 @@ var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_j onresize : function(size) { element_wrap.style.height = size.height + "px"; }, + maxSuggestItems : g5_is_mobile ? 6 : 10, width : '100%', height : '100%' }).embed(element_wrap); @@ -494,6 +495,7 @@ var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_j // iframe을 넣은 element를 안보이게 한다. element_layer.style.display = 'none'; }, + maxSuggestItems : g5_is_mobile ? 6 : 10, width : '100%', height : '100%' }).embed(element_layer); diff --git a/lib/common.lib.php b/lib/common.lib.php index 39003122e..ff5593182 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -2988,15 +2988,32 @@ function check_url_host($url, $msg='', $return_url=G5_URL) $p = @parse_url($url); $host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']); + $is_host_check = false; if(stripos($url, 'http:') !== false) { if(!isset($p['scheme']) || !$p['scheme'] || !isset($p['host']) || !$p['host']) alert('url 정보가 올바르지 않습니다.', $return_url); } - if ((isset($p['scheme']) && $p['scheme']) || (isset($p['host']) && $p['host'])) { + //php 5.6.29 이하 버전에서는 parse_url 버그가 존재함 + if ( (isset($p['host']) && $p['host']) && version_compare(PHP_VERSION, '5.6.29') < 0) { + $bool_ch = false; + foreach( array('user','host') as $key) { + if ( isset( $p[ $key ] ) && strpbrk( $p[ $key ], ':/?#@' ) ) { + $bool_ch = true; + } + } + if( $bool_ch ){ + $regex = '/https?\:\/\/'.$host.'/i'; + if( ! preg_match($regex, $url) ){ + $is_host_check = true; + } + } + } + + if ((isset($p['scheme']) && $p['scheme']) || (isset($p['host']) && $p['host']) || $is_host_check) { //if ($p['host'].(isset($p['port']) ? ':'.$p['port'] : '') != $_SERVER['HTTP_HOST']) { - if ($p['host'] != $host) { + if ( ($p['host'] != $host) || $is_host_check ) { echo '