diff --git a/adm/admin.js b/adm/admin.js
index 4d971c321..a013012ea 100644
--- a/adm/admin.js
+++ b/adm/admin.js
@@ -108,7 +108,7 @@ function get_ajax_token()
}
$(function() {
- $(document).on("click", "form input:submit", function() {
+ $(document).on("click", "form input:submit, form button:submit", function() {
var f = this.form;
var token = get_ajax_token();
diff --git a/adm/qa_config_update.php b/adm/qa_config_update.php
index a269c45ee..97fd16d7e 100644
--- a/adm/qa_config_update.php
+++ b/adm/qa_config_update.php
@@ -12,6 +12,12 @@ $error_msg = '';
$qaconfig = get_qa_config();
+$check_keys = array('qa_title', 'qa_category', 'qa_skin', 'qa_mobile_skin', 'qa_use_email', 'qa_req_email', 'qa_use_hp', 'qa_req_hp', 'qa_use_sms', 'qa_send_number', 'qa_admin_hp', 'qa_admin_email', 'qa_subject_len', 'qa_mobile_subject_len', 'qa_page_rows', 'qa_mobile_page_rows', 'qa_image_width', 'qa_upload_size');
+
+foreach($check_keys as $key){
+ $$key = $_POST[$key] = isset($_POST[$key]) ? strip_tags($_POST[$key]) : '';
+}
+
$qa_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_head, 0, 255));
$qa_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_tail, 0, 255));
@@ -50,8 +56,6 @@ if( $qa_include_tail && ! is_include_path_check($qa_include_tail, 1) ){
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
}
-$_POST['qa_title'] = strip_tags($_POST['qa_title']);
-
$sql = " update {$g5['qa_config_table']}
set qa_title = '{$_POST['qa_title']}',
qa_category = '{$_POST['qa_category']}',
diff --git a/common.php b/common.php
index 3d29652f1..b7741e7da 100644
--- a/common.php
+++ b/common.php
@@ -216,10 +216,6 @@ ini_set("session.gc_divisor", 100); // session.gc_divisor는 session.gc_probabil
session_set_cookie_params(0, '/');
ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
-@session_start();
-//==============================================================================
-
-
//==============================================================================
// 공용 변수
//------------------------------------------------------------------------------
@@ -227,6 +223,38 @@ ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
// 기본적으로 사용하는 필드만 얻은 후 상황에 따라 필드를 추가로 얻음
$config = get_config();
+// 본인인증 또는 쇼핑몰 사용시에만 secure; SameSite=None 로 설정합니다.
+if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) ) {
+ // Chrome 80 버전부터 아래 이슈 대응
+ // https://developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html?fbclid=IwAR0wnJFGd6Fg9_WIbQPK3_FxSSpFLqDCr9bjicXdzy--CCLJhJgC9pJe5ss
+ if(!function_exists('session_start_samesite')) {
+ function session_start_samesite($options = array())
+ {
+ $res = @session_start($options);
+
+ // IE 브라우저 또는 엣지브라우저 일때는 secure; SameSite=None 을 설정하지 않습니다.
+ if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) ){
+ return $res;
+ }
+
+ $headers = headers_list();
+ krsort($headers);
+ foreach ($headers as $header) {
+ if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue;
+ $header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
+ header($header, false);
+ break;
+ }
+ return $res;
+ }
+ }
+
+ session_start_samesite();
+} else {
+ @session_start();
+}
+//==============================================================================
+
define('G5_HTTP_BBS_URL', https_url(G5_BBS_DIR, false));
define('G5_HTTPS_BBS_URL', https_url(G5_BBS_DIR, true));
if ($config['cf_editor'])
diff --git a/config.php b/config.php
index 6f6dca596..604756b22 100644
--- a/config.php
+++ b/config.php
@@ -5,8 +5,8 @@
********************/
define('G5_VERSION', '그누보드5');
-define('G5_GNUBOARD_VER', '5.4.1.4');
-define('G5_YOUNGCART_VER', '5.4.1.4');
+define('G5_GNUBOARD_VER', '5.4.1.7');
+define('G5_YOUNGCART_VER', '5.4.1.7');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true);
diff --git a/lib/uri.lib.php b/lib/uri.lib.php
index 99eda3239..792c9ee3f 100644
--- a/lib/uri.lib.php
+++ b/lib/uri.lib.php
@@ -113,7 +113,7 @@ function short_url_clean($string_url, $add_qry=''){
$array_page_names = run_replace('url_clean_page_names', array('board', 'write', 'content'));
- if( strpos($string_url, G5_BBS_URL) === false || ! in_array($page_name, $array_page_names) ){ //게시판이 아니면 리턴
+ if( stripos(preg_replace('/^https?:/i', '', $string_url), preg_replace('/^https?:/i', '', G5_BBS_URL)) === false || ! in_array($page_name, $array_page_names) ){ //게시판이 아니면 리턴
return run_replace('false_short_url_clean', $string_url, $url, $page_name, $array_page_names);
}
diff --git a/mobile/skin/member/basic/memo_form.skin.php b/mobile/skin/member/basic/memo_form.skin.php
index df25d2401..c9c729675 100644
--- a/mobile/skin/member/basic/memo_form.skin.php
+++ b/mobile/skin/member/basic/memo_form.skin.php
@@ -22,7 +22,7 @@ add_stylesheet('',
-
+
여러 회원에게 보낼때는 컴마(,)로 구분하세요.
쪽지 보낼때 회원당 점의 포인트를 차감합니다.
diff --git a/mobile/skin/qa/basic/view.skin.php b/mobile/skin/qa/basic/view.skin.php
index 4dfe50b94..1bef55039 100644
--- a/mobile/skin/qa/basic/view.skin.php
+++ b/mobile/skin/qa/basic/view.skin.php
@@ -151,7 +151,7 @@ if(!$view['qa_type']) {
-
+
diff --git a/skin/board/basic/view.skin.php b/skin/board/basic/view.skin.php
index 789b7b211..59150b619 100644
--- a/skin/board/basic/view.skin.php
+++ b/skin/board/basic/view.skin.php
@@ -120,7 +120,7 @@ add_stylesheet('', 0
- 비추천
+ 비추천
diff --git a/skin/board/gallery/view.skin.php b/skin/board/gallery/view.skin.php
index b7200e762..e2959eac1 100644
--- a/skin/board/gallery/view.skin.php
+++ b/skin/board/gallery/view.skin.php
@@ -120,7 +120,7 @@ add_stylesheet('', 0
- 비추천
+ 비추천
diff --git a/skin/qa/basic/view.skin.php b/skin/qa/basic/view.skin.php
index 603f7bf29..8c00c0105 100644
--- a/skin/qa/basic/view.skin.php
+++ b/skin/qa/basic/view.skin.php
@@ -163,7 +163,7 @@ add_stylesheet('', 0);
|
- 답변완료' : ' 답변대기'); ?> |
+ 답변완료' : ' 답변대기'); ?> |
',
$k=0;
for ($idx=$table_index, $k=0; $idx
+
+
diff --git a/skin/search/basic/style.css b/skin/search/basic/style.css
index 166322896..b711f02b3 100644
--- a/skin/search/basic/style.css
+++ b/skin/search/basic/style.css
@@ -49,8 +49,9 @@ transition:all 0.1s ease-in-out}
box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
.sch_res_list {position:relative;margin-bottom:10px}
+.sch_res_list .search_board_result{position:relative}
.sch_res_list h2 {margin:0 0 15px;font-size:1.2em}
-.sch_res_list ul {margin:0;padding:0;list-style:none;border-top:1px solid #ececec}
+.sch_res_list ul {margin:0 0 20px 0;padding:0;list-style:none;border-top:1px solid #ececec}
.sch_res_list li {border-bottom:1px solid #ececec;background:#fff;position:relative}
.sch_res_list .sch_tit {display:block;padding:20px 0 10px}
.sch_res_list .pop_a {display:inline-block;background:#e8eeef;color:#6f777f;border-radius:50%;text-align:center;width:26px;height:26px;line-height:26px}
@@ -60,4 +61,4 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
.sch_res_list .sch_info:after {display:block;visibility:hidden;clear:both;content:""}
.sch_res_list .profile_img img {border-radius:50%}
.sch_res_list .sch_datetime {margin-left:5px}
-.sch_more {position:absolute;right:0;top:0;text-align:right;margin:10px 0 30px;color:#3a8afd}
+.sch_more {position:absolute;right:0;top:5px;text-align:right;font-weight:normal;color:#3a8afd}
diff --git a/theme/basic/mobile/skin/member/basic/memo_form.skin.php b/theme/basic/mobile/skin/member/basic/memo_form.skin.php
index df25d2401..c9c729675 100644
--- a/theme/basic/mobile/skin/member/basic/memo_form.skin.php
+++ b/theme/basic/mobile/skin/member/basic/memo_form.skin.php
@@ -22,7 +22,7 @@ add_stylesheet('',
-
+
여러 회원에게 보낼때는 컴마(,)로 구분하세요.
쪽지 보낼때 회원당 점의 포인트를 차감합니다.
diff --git a/theme/basic/mobile/skin/qa/basic/view.skin.php b/theme/basic/mobile/skin/qa/basic/view.skin.php
index 4dfe50b94..1bef55039 100644
--- a/theme/basic/mobile/skin/qa/basic/view.skin.php
+++ b/theme/basic/mobile/skin/qa/basic/view.skin.php
@@ -151,7 +151,7 @@ if(!$view['qa_type']) {
-
+
diff --git a/theme/basic/skin/board/basic/view.skin.php b/theme/basic/skin/board/basic/view.skin.php
index 789b7b211..59150b619 100644
--- a/theme/basic/skin/board/basic/view.skin.php
+++ b/theme/basic/skin/board/basic/view.skin.php
@@ -120,7 +120,7 @@ add_stylesheet('', 0
- 비추천
+ 비추천
diff --git a/theme/basic/skin/board/gallery/view.skin.php b/theme/basic/skin/board/gallery/view.skin.php
index b7200e762..e2959eac1 100644
--- a/theme/basic/skin/board/gallery/view.skin.php
+++ b/theme/basic/skin/board/gallery/view.skin.php
@@ -120,7 +120,7 @@ add_stylesheet('', 0
- 비추천
+ 비추천
diff --git a/theme/basic/skin/qa/basic/view.skin.php b/theme/basic/skin/qa/basic/view.skin.php
index 603f7bf29..8c00c0105 100644
--- a/theme/basic/skin/qa/basic/view.skin.php
+++ b/theme/basic/skin/qa/basic/view.skin.php
@@ -163,7 +163,7 @@ add_stylesheet('', 0);
|
- 답변완료' : ' 답변대기'); ?> |
+ 답변완료' : ' 답변대기'); ?> |
',
$k=0;
for ($idx=$table_index, $k=0; $idx
+
+
diff --git a/theme/basic/skin/search/basic/style.css b/theme/basic/skin/search/basic/style.css
index 166322896..b711f02b3 100644
--- a/theme/basic/skin/search/basic/style.css
+++ b/theme/basic/skin/search/basic/style.css
@@ -49,8 +49,9 @@ transition:all 0.1s ease-in-out}
box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
.sch_res_list {position:relative;margin-bottom:10px}
+.sch_res_list .search_board_result{position:relative}
.sch_res_list h2 {margin:0 0 15px;font-size:1.2em}
-.sch_res_list ul {margin:0;padding:0;list-style:none;border-top:1px solid #ececec}
+.sch_res_list ul {margin:0 0 20px 0;padding:0;list-style:none;border-top:1px solid #ececec}
.sch_res_list li {border-bottom:1px solid #ececec;background:#fff;position:relative}
.sch_res_list .sch_tit {display:block;padding:20px 0 10px}
.sch_res_list .pop_a {display:inline-block;background:#e8eeef;color:#6f777f;border-radius:50%;text-align:center;width:26px;height:26px;line-height:26px}
@@ -60,4 +61,4 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
.sch_res_list .sch_info:after {display:block;visibility:hidden;clear:both;content:""}
.sch_res_list .profile_img img {border-radius:50%}
.sch_res_list .sch_datetime {margin-left:5px}
-.sch_more {position:absolute;right:0;top:0;text-align:right;margin:10px 0 30px;color:#3a8afd}
+.sch_more {position:absolute;right:0;top:5px;text-align:right;font-weight:normal;color:#3a8afd}