Compare commits

..
17 Commits
Author SHA1 Message Date
kagla a58bc5d2fb 버전 5.4.10 수정 2021-07-01 11:55:00 +09:00
kagla ff9f5ee936 문자열 안에 포함된 변수에 {중괄호} 적용 (해피정님,210625) 2021-07-01 11:52:11 +09:00
kagla 69e37cbec9 그누보드, 영카트 통합으로 인하여 게시판그룹을 커뮤니티(community)로 생성 (NaviGator님,210624) 2021-07-01 11:43:07 +09:00
kagla f631b3dca7 KISA 취약점 권고사항 Stored XSS (210624) 2021-07-01 10:59:16 +09:00
kagla e3a7dfd319 관련상품을 삭제한 뒤에 경고가 노출되어 등록, 수정 없이 관련상품만 삭제될 수 있는 오류 수정 (squared2님,210617) 2021-07-01 10:42:11 +09:00
kagla 94cd7b2979 음수 입력 하지 못하도록 수정 2021-07-01 10:41:53 +09:00
kagla cfc6804ee5 버전 5.4.9 수정 2021-06-24 06:46:52 +00:00
kagla 395725a2b5 Merge branch 'master' of https://github.com/gnuboard/gnuboard5 2021-06-24 06:43:09 +00:00
kagla e928df8a8c 현재 false 값만 반환하는 get_magic_quotes_gpc() 관련 코드 제거, PHP7.4.0에서 DEPRECATED 되었습니다. (엑스엠엘님,210624) 2021-06-24 06:42:38 +00:00
EC2 Default User 911503e055 $subject 가 첫번째 조건에 만족하면 $cont 를 초기화 하지 못하는 보안 취약점 수정 (munsiwoo님,210623) 2021-06-24 05:39:11 +00:00
EC2 Default User cc2524e3a4 갤러리 이미지수 설정을 select type 에서 input type 으로 수정 (사노라가노라님,210223) 2021-06-24 04:58:52 +00:00
EC2 Default User d4a63cd105 PHP 8.x 에서 data/dbconfig.php 의 define('G5_USE_SHOP', false); 와 같이 영카트 사용 안함 설정시 나오는 오류 수정 (몰라무서워님외,210623) 2021-06-23 02:50:45 +00:00
EC2 Default User 01c5771c16 PHP 8.x 버전에서 G5_USE_SHOP 이 false 인 경우 테마를 사용하는 경우에 상수 부분에서 발생하는 오류 수정 (dinist님,210618) 2021-06-21 02:38:57 +00:00
kagla 0e9a234dfb 그누보드 버전 5.4.8 수정 2021-06-18 13:57:31 +09:00
kagla 3fa43d55af G5_USE_SHOP 이 false 인 경우 자바스크립트 g5_shop_url 변수 선언하지 않음 2021-06-18 13:51:00 +09:00
kagla 7daa07b53f G5_USE_SHOP 이 false 인 경우 상단의 쇼핑몰 아이콘 제거 2021-06-18 13:50:14 +09:00
kagla 7a40546c4a G5_GNUBOARD_VER 을 extend/version.extend.php 로 옮긴것을 config.php 로 되돌림 2021-06-18 13:33:39 +09:00
15 changed files with 59 additions and 49 deletions
+2
View File
@@ -111,7 +111,9 @@ function imageview(id, w, h)
<div id="tnb">
<ul>
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
<li class="tnb_li"><a href="<?php echo G5_SHOP_URL ?>/" class="tnb_shop" target="_blank" title="쇼핑몰 바로가기">쇼핑몰 바로가기</a></li>
<?php } ?>
<li class="tnb_li"><a href="<?php echo G5_URL ?>/" class="tnb_community" target="_blank" title="커뮤니티 바로가기">커뮤니티 바로가기</a></li>
<li class="tnb_li"><a href="<?php echo G5_ADMIN_URL ?>/service.php" class="tnb_service">부가서비스</a></li>
<li class="tnb_li"><button type="button" class="tnb_mb_btn">관리자<span class="./img/btn_gnb.png">메뉴열기</span></button>
+1 -1
View File
@@ -1062,7 +1062,7 @@ $pg_anchor = '<ul class="anchor">
<th scope="row"><label for="bo_gallery_cols">갤러리 이미지 수<strong class="sound_only">필수</strong></label></th>
<td>
<?php echo help('갤러리 형식의 게시판 목록에서 이미지를 한줄에 몇장씩 보여 줄 것인지를 설정하는 값') ?>
<?php echo get_member_level_select('bo_gallery_cols', 1, 10, $board['bo_gallery_cols']); ?>
<input type="text" name="bo_gallery_cols" value="<?php echo $board['bo_gallery_cols'] ?>" id="bo_gallery_cols" required class="required numeric frm_input" size="4">
</td>
<td class="td_grpset">
<input type="checkbox" name="chk_grp_gallery_cols" value="1" id="chk_grp_gallery_cols">
+3 -1
View File
@@ -1843,8 +1843,10 @@ function fitemformcheck(f)
if(f.it_point_type.value == "1" || f.it_point_type.value == "2") {
var point = parseInt(f.it_point.value);
if(point > 99) {
if(point < 0 || point > 99) {
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
f.it_point.focus();
f.it_point.select();
return false;
}
}
+4 -4
View File
@@ -218,6 +218,10 @@ if ($w == "" || $w == "u")
@set_cookie("ck_origin", stripslashes($it_origin), time() + 86400*31);
}
// 관련상품을 삭제한 뒤에 경고가 노출되어 등록, 수정 없이 관련상품만 삭제될 수 있는 오류 수정 (squared2님,210617)
// 포인트 비율 값 체크
if(($it_point_type == 1 || $it_point_type == 2) && ($it_point < 0 || $it_point > 99))
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
// 관련상품을 우선 삭제함
sql_query(" delete from {$g5['g5_shop_item_relation_table']} where it_id = '$it_id' ");
@@ -287,10 +291,6 @@ for($i=0; $i<$count_ii_article; $i++) {
}
$it_info_value = addslashes(serialize($value_array));
// 포인트 비율 값 체크
if(($it_point_type == 1 || $it_point_type == 2) && $it_point > 99)
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
$it_name = isset($_POST['it_name']) ? strip_tags(clean_xss_attributes(trim($_POST['it_name']))) : '';
// KVE-2019-0708
+25 -23
View File
@@ -30,7 +30,7 @@ $qstr_device = '&amp;mode='.$mode.'&amp;device='.(G5_IS_MOBILE ? 'pc' : 'mobile
$sql = " select bo_table, wr_parent from {$g5['board_new_table']} order by bn_id desc limit 1 ";
$row = sql_fetch($sql);
$bo_table = $row['bo_table'];
$board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '$bo_table' ");
$board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '{$bo_table}' ");
$write_table = $g5['write_prefix'] . $bo_table;
// theme.config.php 미리보기 게시판 스킨이 설정돼 있다면
@@ -100,29 +100,31 @@ for($i=1; $i<=5; $i++) {
$default['de_mimg_width'] = (isset($tconfig['de_mimg_width']) && $tconfig['de_mimg_width']) ? $tconfig['de_mimg_width'] : $default['de_mimg_width'];
$default['de_mimg_height'] = (isset($tconfig['de_mimg_height']) && $tconfig['de_mimg_height']) ? $tconfig['de_mimg_height'] : $default['de_mimg_height'];
// 테마 경로 설정
if(defined('G5_THEME_PATH')) {
define('G5_THEME_SHOP_PATH', G5_THEME_PATH.'/'.G5_SHOP_DIR);
define('G5_THEME_SHOP_URL', G5_THEME_URL.'/'.G5_SHOP_DIR);
define('G5_THEME_MSHOP_PATH', G5_THEME_PATH.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
define('G5_THEME_MSHOP_URL', G5_THEME_URL.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
}
if (defined('G5_USE_SHOP') && G5_USE_SHOP) {
// 테마 경로 설정
if(defined('G5_THEME_PATH')) {
define('G5_THEME_SHOP_PATH', G5_THEME_PATH.'/'.G5_SHOP_DIR);
define('G5_THEME_SHOP_URL', G5_THEME_URL.'/'.G5_SHOP_DIR);
define('G5_THEME_MSHOP_PATH', G5_THEME_PATH.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
define('G5_THEME_MSHOP_URL', G5_THEME_URL.'/'.G5_MOBILE_DIR.'/'.G5_SHOP_DIR);
}
// 스킨 경로 설정
if(preg_match('#^theme/(.+)$#', $default['de_shop_skin'], $match)) {
define('G5_SHOP_SKIN_PATH', G5_THEME_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
define('G5_SHOP_SKIN_URL', G5_THEME_URL .'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
} else {
define('G5_SHOP_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_skin']);
define('G5_SHOP_SKIN_URL', G5_URL .'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_skin']);
}
// 스킨 경로 설정
if(preg_match('#^theme/(.+)$#', $default['de_shop_skin'], $match)) {
define('G5_SHOP_SKIN_PATH', G5_THEME_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
define('G5_SHOP_SKIN_URL', G5_THEME_URL .'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
} else {
define('G5_SHOP_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_skin']);
define('G5_SHOP_SKIN_URL', G5_URL .'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_skin']);
}
if(preg_match('#^theme/(.+)$#', $default['de_shop_mobile_skin'], $match)) {
define('G5_MSHOP_SKIN_PATH', G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
define('G5_MSHOP_SKIN_URL', G5_THEME_URL .'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/shop/'.$match[1]);
} else {
define('G5_MSHOP_SKIN_PATH', G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_mobile_skin']);
define('G5_MSHOP_SKIN_URL', G5_MOBILE_URL .'/'.G5_SKIN_DIR.'/shop/'.$default['de_shop_mobile_skin']);
if(preg_match('#^theme/(.+)$#', $default['de_shop_mobile_skin'], $match)) {
define('G5_MSHOP_SKIN_PATH', G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
define('G5_MSHOP_SKIN_URL', G5_THEME_URL .'/'.G5_MOBILE_DIR.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$match[1]);
} else {
define('G5_MSHOP_SKIN_PATH', G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_mobile_skin']);
define('G5_MSHOP_SKIN_URL', G5_MOBILE_URL .'/'.G5_SKIN_DIR.'/'.G5_SHOP_DIR.'/'.$default['de_shop_mobile_skin']);
}
}
$conf = sql_fetch(" select cf_theme from {$g5['config_table']} ");
@@ -170,7 +172,7 @@ require_once(G5_PATH.'/head.sub.php');
break;
case 'view':
$wr_id = $row['wr_parent'];
$write = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
$write = sql_fetch(" select * from {$write_table} where wr_id = '{$wr_id}' ");
include(G5_BBS_PATH.'/board.php');
break;
case 'shop':
+2 -3
View File
@@ -11,7 +11,7 @@ for ($i=0; $i<count($filter); $i++) {
$str = $filter[$i];
// 제목 필터링 (찾으면 중지)
$subj = "";
$subj = $cont = "";
$pos = stripos($subject, $str);
if ($pos !== false) {
$subj = $str;
@@ -19,7 +19,6 @@ for ($i=0; $i<count($filter); $i++) {
}
// 내용 필터링 (찾으면 중지)
$cont = "";
$pos = stripos($content, $str);
if ($pos !== false) {
$cont = $str;
@@ -27,4 +26,4 @@ for ($i=0; $i<count($filter); $i++) {
}
}
die("{\"subject\":\"$subj\",\"content\":\"$cont\"}");
die("{\"subject\":\"{$subj}\",\"content\":\"{$cont}\"}");
+2 -1
View File
@@ -79,7 +79,8 @@ if(is_file($skin_file)) {
else
$content = "\n\n\n\n====== 이전 답변내용 =======\n";
$content .= get_text($write['qa_content'], 0);
// KISA 취약점 권고사항 Stored XSS (210624)
$content .= get_text(html_purifier($write['qa_content']), 0);
} else {
//$content = get_text($write['qa_content'], 0);
-7
View File
@@ -101,13 +101,6 @@ function sql_escape_string($str)
//==============================================================================
// SQL Injection 등으로 부터 보호를 위해 sql_escape_string() 적용
//------------------------------------------------------------------------------
// magic_quotes_gpc 에 의한 backslashes 제거
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$_POST = array_map_deep('stripslashes', $_POST);
$_GET = array_map_deep('stripslashes', $_GET);
$_COOKIE = array_map_deep('stripslashes', $_COOKIE);
$_REQUEST = array_map_deep('stripslashes', $_REQUEST);
}
// sql_escape_string 적용
$_POST = array_map_deep(G5_ESCAPE_FUNCTION, $_POST);
+7 -1
View File
@@ -4,6 +4,12 @@
상수 선언
********************/
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.4.10');
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617)
// G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함
define('G5_YOUNGCART_VER', '5.4.5.5.1');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true);
@@ -228,4 +234,4 @@ if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');
} else { //http 통신일때 daum 주소 js
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');
}
}
-6
View File
@@ -1,12 +1,6 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.4.7');
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617)
// G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함
define('G5_YOUNGCART_VER', '5.4.5.5.1');
// 자바스크립트와 CSS 파일을 새로 다운로드 하도록 파일의 끝에 년월일 지정
// 예) https://도메인/css/default.css?ver=210618
// 예) https://도메인/js/common.js?ver=210618
+2
View File
@@ -79,7 +79,9 @@ var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
<?php if(defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
<?php } ?>
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>
+5 -2
View File
@@ -241,8 +241,11 @@ if($g5_install || !$result) {
// FAQ Master
sql_query(" insert into `{$table_prefix}faq_master` set fm_id = '1', fm_subject = '자주하시는 질문' ", true, $dblink);
$tmp_gr_id = defined('G5_YOUNGCART_VER') ? 'shop' : 'community';
$tmp_gr_subject = defined('G5_YOUNGCART_VER') ? '쇼핑몰' : '커뮤니티';
// 그누보드, 영카트 통합으로 인하여 게시판그룹을 커뮤니티(community)로 생성 (NaviGator님,210624)
// $tmp_gr_id = defined('G5_YOUNGCART_VER') ? 'shop' : 'community';
// $tmp_gr_subject = defined('G5_YOUNGCART_VER') ? '쇼핑몰' : '커뮤니티';
$tmp_gr_id = 'community';
$tmp_gr_subject = '커뮤니티';
// 게시판 그룹 생성
sql_query(" insert into `{$table_prefix}group` set gr_id = '$tmp_gr_id', gr_subject = '$tmp_gr_subject' ", true, $dblink);
+2
View File
@@ -68,7 +68,9 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
if ($i == 0) { ?>
<li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하세요.<?php } ?></li>
<?php } ?>
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
<li class="gnb_1dli"><a href="<?php echo G5_SHOP_URL ?>" class="gnb_1da"> 쇼핑몰</a></li>
<?php } ?>
</ul>
<ul id="hd_nb">
<li class="hd_nb1"><a href="<?php echo G5_BBS_URL ?>/faq.php" id="snb_faq"><i class="fa fa-question" aria-hidden="true"></i>FAQ</a></li>
+2
View File
@@ -68,8 +68,10 @@ var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
var g5_theme_shop_url = "<?php echo G5_THEME_SHOP_URL; ?>";
var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
<?php } ?>
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>
+2
View File
@@ -69,7 +69,9 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
if ($i == 0) { ?>
<li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하세요.<?php } ?></li>
<?php } ?>
<?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
<li class="gnb_1dli"><a href="<?php echo G5_SHOP_URL ?>" class="gnb_1da"> 쇼핑몰</a></li>
<?php } ?>
</ul>
<ul id="hd_nb">