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}