충돌수정

This commit is contained in:
thisgun
2018-09-17 10:41:18 +09:00
23 changed files with 176 additions and 55 deletions

View File

@ -5,7 +5,7 @@
********************/
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.3.1.6');
define('G5_GNUBOARD_VER', '5.3.1.7');
define('G5_YOUNGCART_VER', '5.3.1.6');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음

View File

@ -0,0 +1,53 @@
<?php
include_once ('../config.php');
include_once('../lib/json.lib.php');
include_once('../lib/common.lib.php'); // 공통 라이브러리
include_once('./install.function.php'); // 인스톨 과정 함수 모음
$data_path = '../'.G5_DATA_DIR;
// 파일이 존재한다면 설치할 수 없다.
$dbconfig_file = $data_path.'/'.G5_DBCONFIG_FILE;
if (file_exists($dbconfig_file)) {
die(install_json_msg('프로그램이 이미 설치되어 있습니다.'));
}
$mysql_host = safe_install_string_check($_POST['mysql_host'], 'json');
$mysql_user = safe_install_string_check($_POST['mysql_user'], 'json');
$mysql_pass = safe_install_string_check($_POST['mysql_pass'], 'json');
$mysql_db = safe_install_string_check($_POST['mysql_db'], 'json');
$table_prefix= safe_install_string_check($_POST['table_prefix']);
$tmp_str = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : '';
$ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].$_SERVER['DOCUMENT_ROOT']);
$bool_ajax_token = ($ajax_token == $_POST['ajax_token']) ? true : false;
if( !($mysql_host && $mysql_user && $mysql_pass && $mysql_db && $table_prefix && $bool_ajax_token) ){
die(install_json_msg('잘못된 요청입니다.'));
}
try {
$dblink = sql_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
} catch (Exception $e) {
}
if (!$dblink) {
die(install_json_msg('MySQL Host, User, Password 를 확인해 주십시오.'));
}
try {
$select_db = sql_select_db($mysql_db, $dblink);
} catch (Exception $e) {
}
if (!$select_db) {
die(install_json_msg('MySQL DB 를 확인해 주십시오.'));
}
if(sql_query("DESCRIBE `{$table_prefix}config`", G5_DISPLAY_SQL_ERROR, $dblink)) {
die(install_json_msg('주의! 이미 테이블이 존재하므로, 기존 DB 자료가 망실됩니다. 계속 진행하겠습니까?', 'exists'));
}
die(install_json_msg('ok', 'success'));
?>

View File

@ -0,0 +1,40 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if( ! function_exists('safe_install_string_check') ){
function safe_install_string_check( $str, $is_json=false ) {
$is_check = false;
if(preg_match('#\);(passthru|eval|pcntl_exec|exec|system|popen|fopen|fsockopen|file|file_get_contents|readfile|unlink|include|include_once|require|require_once)\s?#i', $str)) {
$is_check = true;
}
if(preg_match('#\$_(get|post|request)\s?\[.*?\]\s?\)#i', $str)){
$is_check = true;
}
if($is_check){
$msg = "입력한 값에 안전하지 않는 문자가 포함되어 있습니다. 설치를 중단합니다.";
if($is_json){
die(install_json_msg($msg));
}
die($msg);
}
return $str;
}
}
if( ! function_exists('install_json_msg') ){
function install_json_msg($msg, $type='error'){
$error_msg = ($type==='error') ? $msg : '';
$success_msg = ($type==='success') ? $msg : '';
$exists_msg = ($type==='exists') ? $msg : '';
return json_encode(array('error'=>$error_msg, 'success'=>$success_msg, 'exists'=>$exists_msg));
}
}
?>

View File

@ -17,6 +17,9 @@ if (!isset($_POST['agree']) || $_POST['agree'] != '동의함') {
echo "<div class=\"inner_btn\"><a href=\"./\">뒤로가기</a></div></div>".PHP_EOL;
exit;
}
$tmp_str = isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : '';
$ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].$_SERVER['DOCUMENT_ROOT']);
?>
@ -85,6 +88,7 @@ if (!isset($_POST['agree']) || $_POST['agree'] != '동의함') {
<table class="ins_frm">
<caption>최고관리자 정보입력</caption>
<input type="hidden" name="ajax_token" value="<?php echo $ajax_token; ?>" >
<colgroup>
<col style="width:150px">
<col>
@ -127,6 +131,7 @@ if (!isset($_POST['agree']) || $_POST['agree'] != '동의함') {
</div>
</div>
<script src="../js/jquery-1.8.3.min.js"></script>
<script>
function frm_install_submit(f)
{
@ -188,6 +193,29 @@ function frm_install_submit(f)
return false;
}
if (window.jQuery) {
var jqxhr = jQuery.post( "ajax.install.check.php", $(f).serialize(), function(data) {
if( data.error ){
alert(data.error);
} else if( data.exists ) {
if( confirm(data.exists) ){
f.submit();
}
} else if( data.success ) {
f.submit();
}
}, "json");
jqxhr.fail(function(xhr) {
alert( xhr.responseText );
});
return false;
}
return true;
}
</script>

View File

@ -11,26 +11,7 @@ header('Pragma: no-cache'); // HTTP/1.0
include_once ('../config.php');
include_once ('../lib/common.lib.php');
if( ! function_exists('safe_install_string_check') ){
function safe_install_string_check( $str ) {
$is_check = false;
if(preg_match('#\);(passthru|eval|pcntl_exec|exec|system|popen|fopen|fsockopen|file|file_get_contents|readfile|unlink|include|include_once|require|require_once)\s?#i', $str)) {
$is_check = true;
}
if(preg_match('#\$_(get|post|request)\s?\[.*?\]\s?\)#i', $str)){
$is_check = true;
}
if($is_check){
die("입력한 값에 안전하지 않는 문자가 포함되어 있습니다. 설치를 중단합니다.");
}
return $str;
}
}
include_once('./install.function.php'); // 인스톨 과정 함수 모음
$title = G5_VERSION." 설치 완료 3/3";
include_once ('./install.inc.php');

View File

@ -441,7 +441,9 @@ var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_j
of[frm_jibeon].value = data.userSelectedType;
}
setTimeout(function(){
of[frm_addr2].focus();
} , 100);
};
switch(zip_case) {

View File

@ -2678,7 +2678,7 @@ function get_qa_config($fld='*')
// get_sock 함수 대체
if (!function_exists("get_sock")) {
function get_sock($url)
function get_sock($url, $timeout=30)
{
// host 와 uri 를 분리
//if (ereg("http://([a-zA-Z0-9_\-\.]+)([^<]*)", $url, $res))
@ -2689,7 +2689,7 @@ if (!function_exists("get_sock")) {
}
// 80번 포트로 소캣접속 시도
$fp = fsockopen ($host, 80, $errno, $errstr, 30);
$fp = fsockopen ($host, 80, $errno, $errstr, $timeout);
if (!$fp)
{
//die("$errstr ($errno)\n");
@ -2893,6 +2893,14 @@ function clean_xss_tags($str)
return $str;
}
// XSS 어트리뷰트 태그 제거
function clean_xss_attributes($str)
{
$str = preg_replace('#(onabort|onactivate|onafterprint|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavaible|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragdrop|ondragend|ondragenter|ondragleave|ondragover|ondragstart|ondrop|onerror|onerrorupdate|onfilterupdate|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmoveout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onpaste|onpropertychange|onreadystatechange|onreset|onresize|onresizeend|onresizestart|onrowexit|onrowsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|onsubmit|onunload)\\s*=\\s*\\\?".*?"#is', '', $str);
return $str;
}
// unescape nl 얻기
function conv_unescape_nl($str)
{
@ -2990,7 +2998,7 @@ function replace_filename($name)
// 아이코드 사용자정보
function get_icode_userinfo($id, $pass)
{
$res = get_sock('http://www.icodekorea.com/res/userinfo.php?userid='.$id.'&userpw='.$pass);
$res = get_sock('http://www.icodekorea.com/res/userinfo.php?userid='.$id.'&userpw='.$pass, 2);
$res = explode(';', $res);
$userinfo = array(
'code' => $res[0], // 결과코드

View File

@ -119,7 +119,7 @@ class LMS {
function Send() {
$fsocket = fsockopen($this->socket_host,$this->socket_port, $errno, $errstr, 2);
if (!$fsocket) return false;
set_time_limit(300);
set_time_limit(60);
foreach($this->Data as $puts) {
fputs($fsocket, $puts);

View File

@ -122,9 +122,9 @@ class SMS {
}
function Send () {
$fp=@fsockopen(trim($this->SMS_Server),trim($this->SMS_Port));
$fp=@fsockopen(trim($this->SMS_Server),trim($this->SMS_Port), $errno, $errstr, 2);
if (!$fp) return false;
set_time_limit(300);
set_time_limit(60);
## php4.3.10일경우
## zend 최신버전으로 업해주세요..

View File

@ -47,13 +47,13 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=twitter&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-twitter" title="트위터">
<span class="ico"></span>
<span class="txt">트위터+<i> 트위터</i></span>
<span class="txt">트위터+<i> 로그인</i></span>
</a>
<?php } //end if ?>
<?php if( social_service_check('payco') ) { //페이코 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=payco&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-payco" title="페이코">
<span class="ico"></span>
<span class="txt">페이코 로그인</span>
<span class="txt">페이코<i> 로그인</i></span>
</a>
<?php } //end if ?>
@ -69,7 +69,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -69,7 +69,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -54,7 +54,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('payco') ) { //페이코 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=payco&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-payco" title="페이코">
<span class="ico"></span>
<span class="txt">페이코 로그인</span>
<span class="txt">페이코<i> 로그인</i></span>
</a>
<?php } //end if ?>
@ -70,7 +70,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -150,7 +150,7 @@ jQuery(function($){
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -267,7 +267,7 @@ if($config['cf_sms_type'] == 'LMS') {
$fsocket = fsockopen($this->socket_host,$this->socket_port, $errno, $errstr, 2);
if (!$fsocket) return false;
set_time_limit(300);
set_time_limit(60);
foreach($this->Data as $puts) {
fputs($fsocket, $puts);
@ -436,9 +436,9 @@ if($config['cf_sms_type'] == 'LMS') {
exit;
}
$fsocket=fsockopen($this->SMS_Server,$this->SMS_Port);
$fsocket=fsockopen($this->SMS_Server,$this->SMS_Port, $errno, $errstr, 2);
if (!$fsocket) return false;
set_time_limit(300);
set_time_limit(60);
## php4.3.10일경우
## zend 최신버전으로 업해주세요..

View File

@ -20,9 +20,10 @@ $sns_send .= '&amp;title='.$sns_msg;
$facebook_url = $sns_send.'&amp;sns=facebook';
$twitter_url = $sns_send.'&amp;sns=twitter';
$gplus_url = $sns_send.'&amp;sns=gplus';
$bo_v_sns_class = $config['cf_kakao_js_apikey'] ? 'show_kakao' : '';
?>
<?php if(G5_IS_MOBILE && $config['cf_kakao_js_apikey']) { ?>
<?php if($config['cf_kakao_js_apikey']) { ?>
<script src="//developers.kakao.com/sdk/js/kakao.min.js"></script>
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script>
<script>
@ -33,12 +34,12 @@ $gplus_url = $sns_send.'&amp;sns=gplus';
<div class="bo_v_snswr">
<button type="button" class="btn btn_b03 btn_share"><i class="fa fa-share-alt" aria-hidden="true"></i> SNS공유</button>
<ul id="bo_v_sns">
<ul id="bo_v_sns" class="<?php echo $bo_v_sns_class; ?>">
<li><a href="<?php echo $twitter_url; ?>" target="_blank" class="sns_t"><img src="<?php echo G5_SNS_URL; ?>/icon/twitter.png" alt="트위터로 보내기" width="20"></a></li>
<li><a href="<?php echo $facebook_url; ?>" target="_blank" class="sns_f"><img src="<?php echo G5_SNS_URL; ?>/icon/facebook.png" alt="페이스북으로 보내기" width="20"></a></li>
<li><a href="<?php echo $gplus_url; ?>" target="_blank" class="sns_g"><img src="<?php echo G5_SNS_URL; ?>/icon/gplus.png" alt="구글플러스로 보내기" width="20"></a></li>
<?php if(G5_IS_MOBILE && $config['cf_kakao_js_apikey']) { ?>
<li><a href="javascript:kakaolink_send('<?php echo $sns_msg; ?>', '<?php echo urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); ?>');" class="sns_k" ><img src="<?php echo G5_SNS_URL; ?>/icon/kakaotalk.png" alt="카카오톡으로 보내기" width="20"></a></li>
<?php if($config['cf_kakao_js_apikey']) { ?>
<li><a href="javascript:kakaolink_send('<?php echo str_replace(array('%27', '\''), '', $sns_msg); ?>', '<?php echo urlencode('http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); ?>');" class="sns_k" ><img src="<?php echo G5_SNS_URL; ?>/icon/kakaotalk.png" alt="카카오톡으로 보내기" width="20"></a></li>
<?php } ?>
</ul>
</div>

View File

@ -294,6 +294,8 @@ box-shadow: inset 0 2px 5px rgb(33, 135, 202);
#bo_v_sns li .sns_f{display:block;background:#415b92}
#bo_v_sns li .sns_t{display:block;background:#35b3dc}
#bo_v_sns li .sns_g{display:block;background:#d5503a}
#bo_v_sns.show_kakao{width:240px;margin-left:-120px}
#bo_v_sns li .sns_k{display:block;background:#fbe300}
#bo_v_sns li img{vertical-align:top}
/* 게시판 댓글 */

View File

@ -307,6 +307,8 @@ box-shadow: inset 0 2px 5px rgb(33, 135, 202);}
#bo_v_sns li .sns_f{display:block;background:#415b92}
#bo_v_sns li .sns_t{display:block;background:#35b3dc}
#bo_v_sns li .sns_g{display:block;background:#d5503a}
#bo_v_sns.show_kakao{width:240px;margin-left:-120px}
#bo_v_sns li .sns_k{display:block;background:#fbe300}
#bo_v_sns li img{vertical-align:top}

View File

@ -53,7 +53,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('payco') ) { //페이코 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=payco&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-payco" title="페이코">
<span class="ico"></span>
<span class="txt">페이코 로그인</span>
<span class="txt">페이코<i> 로그인</i></span>
</a>
<?php } //end if ?>
@ -69,7 +69,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -47,13 +47,13 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=twitter&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-twitter" title="트위터">
<span class="ico"></span>
<span class="txt">트위터+<i> 트위터</i></span>
<span class="txt">트위터+<i> 로그인</i></span>
</a>
<?php } //end if ?>
<?php if( social_service_check('payco') ) { //페이코 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=payco&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-payco" title="페이코">
<span class="ico"></span>
<span class="txt">페이코 로그인</span>
<span class="txt">페이코<i> 로그인</i></span>
</a>
<?php } //end if ?>
@ -69,7 +69,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -25,31 +25,31 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
<?php if( social_service_check('naver') ) { //네이버 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=naver&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-naver" title="네이버">
<span class="ico"></span>
<span class="txt">네이버로 회원가입하기</span>
<span class="txt">네이버로 회원가입하기</span>
</a>
<?php } //end if ?>
<?php if( social_service_check('kakao') ) { //카카오 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=kakao&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-kakao" title="카카오">
<span class="ico"></span>
<span class="txt">카카오로 회원가입하기</i></span>
<span class="txt">카카오로 회원가입하기</span>
</a>
<?php } //end if ?>
<?php if( social_service_check('facebook') ) { //페이스북 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=facebook&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-facebook" title="페이스북">
<span class="ico"></span>
<span class="txt">페이스북로 회원가입하기</i></span>
<span class="txt">페이스북로 회원가입하기</span>
</a>
<?php } //end if ?>
<?php if( social_service_check('google') ) { //구글 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=google&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-google" title="구글">
<span class="ico"></span>
<span class="txt">구글+로 회원가입하기</i></span>
<span class="txt">구글+로 회원가입하기</span>
</a>
<?php } //end if ?>
<?php if( social_service_check('twitter') ) { //트위터 로그인을 사용한다면 ?>
<a href="<?php echo $self_url;?>?provider=twitter&amp;url=<?php echo $urlencode;?>" class="sns-icon social_link sns-twitter" title="트위터">
<span class="ico"></span>
<span class="txt">트위터로 회원가입하기</i></span>
<span class="txt">트위터로 회원가입하기</span>
</a>
<?php } //end if ?>
<?php if( social_service_check('payco') ) { //페이코 로그인을 사용한다면 ?>
@ -71,7 +71,7 @@ add_stylesheet('<link rel="stylesheet" href="'.get_social_skin_url().'/style.css
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -146,7 +146,7 @@ jQuery(function($){
var newWin = window.open(
pop_url,
"social_sing_on",
"location=0,status=0,scrollbars=0,width=600,height=500"
"location=0,status=0,scrollbars=1,width=600,height=500"
);
if(!newWin || newWin.closed || typeof newWin.closed=='undefined')

View File

@ -294,6 +294,8 @@ box-shadow: inset 0 2px 5px rgb(33, 135, 202);
#bo_v_sns li .sns_f{display:block;background:#415b92}
#bo_v_sns li .sns_t{display:block;background:#35b3dc}
#bo_v_sns li .sns_g{display:block;background:#d5503a}
#bo_v_sns.show_kakao{width:240px;margin-left:-120px}
#bo_v_sns li .sns_k{display:block;background:#fbe300}
#bo_v_sns li img{vertical-align:top}
/* 게시판 댓글 */

View File

@ -307,6 +307,8 @@ box-shadow: inset 0 2px 5px rgb(33, 135, 202);}
#bo_v_sns li .sns_f{display:block;background:#415b92}
#bo_v_sns li .sns_t{display:block;background:#35b3dc}
#bo_v_sns li .sns_g{display:block;background:#d5503a}
#bo_v_sns.show_kakao{width:240px;margin-left:-120px}
#bo_v_sns li .sns_k{display:block;background:#fbe300}
#bo_v_sns li img{vertical-align:top}