Compare commits

..
31 Commits
Author SHA1 Message Date
thisgun 58878593dc Merge branch 'master' of github.com:gnuboard/g5 2019-09-16 16:04:23 +09:00
thisgun d72a3b5a73 버전 5.3.3.3 수정 2019-09-16 11:39:25 +09:00
thisgun 47bee3d294 탈퇴한 회원이 비밀번호를 찾기 할수 있는 오류 수정 2019-09-16 11:15:18 +09:00
thisgun 8182cac90d XSS 취약점 수정 2019-09-16 10:36:10 +09:00
thisgun b4604fca67 [KVE-2019-1318] SQL Injection 취약점 수정 2019-09-09 12:27:14 +09:00
thisgun 7ad199ccd5 소셜 로그인 가입시 닉네임 중복 체크 코드 수정 2019-09-09 11:30:44 +09:00
thisgun f0e176033f 카카오 링크 v2 버전 코드 수정 2019-09-06 17:48:35 +09:00
thisgun d33753014c [KVE-2019-1162]임의 명령어 실행 취약점 수정 2019-09-06 12:28:27 +09:00
thisgun 3c55c4d60d 그누보드 Stored XSS 취약점(KVE-2019-1198) 수정 2019-08-29 14:44:47 +09:00
thisgun c2922aaa13 그누보드 XSS 취약점(KVE-2019-1235,1236,1238) 2019-08-29 12:23:29 +09:00
thisgun 120d42c431 카카오 소셜 로그인 설정 표시문 수정 2019-08-26 18:03:57 +09:00
thisgun 863f6011ac Merge branch 'master' of github.com:gnuboard/g5 2019-08-12 10:37:25 +09:00
thisgun 067bcd2046 버전 5.3.3.2 수정 2019-08-12 10:22:09 +09:00
thisgun a1633aec96 잘못된 php 코드 수정 2019-07-29 11:42:07 +09:00
thisgun f675c38441 관리자 회원메일발송 페이지 xss 취약점 수정 2019-07-19 19:58:12 +09:00
thisgun cee88a0f6f Merge branch 'master' of github.com:gnuboard/g5 2019-07-15 18:40:40 +09:00
thisgun cbde9c91d7 버전 5.3.3.1 으로 변경 2019-07-15 18:19:15 +09:00
thisgun c17fef6778 파이어폭스 68 버전에서 스마트에디터 오류 나는 부분을 예외처리 2019-07-15 18:18:24 +09:00
thisgun 73478d5961 KVE-2019-1142 LFI & Command Injection 취약점 수정 2019-07-09 14:11:48 +09:00
thisgun 846285549a 새글 삭제시 공지글이 풀리는 오류 수정 2019-07-08 16:05:14 +09:00
thisgun 27b1a5d8f8 Merge branch 'master' of github.com:gnuboard/g5 2019-06-18 17:57:28 +09:00
thisgun 2199ffd44d 5.3.3 버전으로 수정 2019-06-18 17:55:43 +09:00
thisgun 86fb983eac 글 복사 이동시 첨부파일 권한 변경 코드 수정 2019-06-18 17:20:41 +09:00
thisgun 7d494115b3 Merge branch 'master' of github.com:gnuboard/g5 2019-06-14 09:44:03 +09:00
thisgun 17238808b5 잘못된 코드 수정 2019-06-13 16:33:02 +09:00
thisgun a6d851e174 KVE-2019-1045 그누보드 XSS, RCE 취약점 수정 2019-06-13 14:55:25 +09:00
thisgun a1dbe22063 KVE-0994,0995,1014 취약점 수정 2019-06-12 17:14:23 +09:00
thisgun e6a3270936 XSS 취약점 수정 2019-06-12 15:28:41 +09:00
thisgun 0954beced9 Merge branch 'master' of github.com:gnuboard/g5 2019-05-30 11:01:48 +09:00
thisgun 9e14e803e5 5.3.2.9.1 버전 수정 2019-05-30 11:01:04 +09:00
thisgun 250c9fc660 잘못된 패치 내용 수정 2019-05-30 11:00:18 +09:00
42 changed files with 179 additions and 107 deletions

No files matched your search

+4 -4
View File
@@ -869,7 +869,7 @@ $pg_anchor = '<ul class="anchor">
<tr> <tr>
<th scope="row"><label for="bo_content_head">상단 내용</label></th> <th scope="row"><label for="bo_content_head">상단 내용</label></th>
<td> <td>
<?php echo editor_html("bo_content_head", get_text($board['bo_content_head'], 0)); ?> <?php echo editor_html("bo_content_head", get_text(html_purifier($board['bo_content_head']), 0)); ?>
</td> </td>
<td class="td_grpset"> <td class="td_grpset">
<input type="checkbox" name="chk_grp_content_head" value="1" id="chk_grp_content_head"> <input type="checkbox" name="chk_grp_content_head" value="1" id="chk_grp_content_head">
@@ -881,7 +881,7 @@ $pg_anchor = '<ul class="anchor">
<tr> <tr>
<th scope="row"><label for="bo_content_tail">하단 내용</label></th> <th scope="row"><label for="bo_content_tail">하단 내용</label></th>
<td> <td>
<?php echo editor_html("bo_content_tail", get_text($board['bo_content_tail'], 0)); ?> <?php echo editor_html("bo_content_tail", get_text(html_purifier($board['bo_content_tail']), 0)); ?>
</td> </td>
<td class="td_grpset"> <td class="td_grpset">
<input type="checkbox" name="chk_grp_content_tail" value="1" id="chk_grp_content_tail"> <input type="checkbox" name="chk_grp_content_tail" value="1" id="chk_grp_content_tail">
@@ -893,7 +893,7 @@ $pg_anchor = '<ul class="anchor">
<tr> <tr>
<th scope="row"><label for="bo_mobile_content_head">모바일 상단 내용</label></th> <th scope="row"><label for="bo_mobile_content_head">모바일 상단 내용</label></th>
<td> <td>
<?php echo editor_html("bo_mobile_content_head", get_text($board['bo_mobile_content_head'], 0)); ?> <?php echo editor_html("bo_mobile_content_head", get_text(html_purifier($board['bo_mobile_content_head']), 0)); ?>
</td> </td>
<td class="td_grpset"> <td class="td_grpset">
<input type="checkbox" name="chk_grp_mobile_content_head" value="1" id="chk_grp_mobile_content_head"> <input type="checkbox" name="chk_grp_mobile_content_head" value="1" id="chk_grp_mobile_content_head">
@@ -905,7 +905,7 @@ $pg_anchor = '<ul class="anchor">
<tr> <tr>
<th scope="row"><label for="bo_mobile_content_tail">모바일 하단 내용</label></th> <th scope="row"><label for="bo_mobile_content_tail">모바일 하단 내용</label></th>
<td> <td>
<?php echo editor_html("bo_mobile_content_tail", get_text($board['bo_mobile_content_tail'], 0)); ?> <?php echo editor_html("bo_mobile_content_tail", get_text(html_purifier($board['bo_mobile_content_tail']), 0)); ?>
</td> </td>
<td class="td_grpset"> <td class="td_grpset">
<input type="checkbox" name="chk_grp_mobile_content_tail" value="1" id="chk_grp_mobile_content_tail"> <input type="checkbox" name="chk_grp_mobile_content_tail" value="1" id="chk_grp_mobile_content_tail">
+3 -1
View File
@@ -29,9 +29,11 @@ if ($_POST['act_button'] == "선택수정") {
alert('최고관리자가 아닌 경우 다른 관리자의 게시판('.$board_table[$k].')은 수정이 불가합니다.'); alert('최고관리자가 아닌 경우 다른 관리자의 게시판('.$board_table[$k].')은 수정이 불가합니다.');
} }
$p_bo_subject = is_array($_POST['bo_subject']) ? strip_tags($_POST['bo_subject'][$k]) : '';
$sql = " update {$g5['board_table']} $sql = " update {$g5['board_table']}
set gr_id = '".sql_real_escape_string(strip_tags($_POST['gr_id'][$k]))."', set gr_id = '".sql_real_escape_string(strip_tags($_POST['gr_id'][$k]))."',
bo_subject = '".sql_real_escape_string(strip_tags($_POST['bo_subject'][$k]))."', bo_subject = '".$p_bo_subject."',
bo_device = '".sql_real_escape_string(strip_tags($_POST['bo_device'][$k]))."', bo_device = '".sql_real_escape_string(strip_tags($_POST['bo_device'][$k]))."',
bo_skin = '".sql_real_escape_string(strip_tags($_POST['bo_skin'][$k]))."', bo_skin = '".sql_real_escape_string(strip_tags($_POST['bo_skin'][$k]))."',
bo_mobile_skin = '".sql_real_escape_string(strip_tags($_POST['bo_mobile_skin'][$k]))."', bo_mobile_skin = '".sql_real_escape_string(strip_tags($_POST['bo_mobile_skin'][$k]))."',
+3 -2
View File
@@ -19,7 +19,8 @@ for ($i=0; $i<$count; $i++)
{ {
$k = $_POST['chk'][$i]; $k = $_POST['chk'][$i];
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $_POST['group_id'][$k]); $gr_id = preg_replace('/[^a-z0-9_]/i', '', $_POST['group_id'][$k]);
$gr_subject = sql_real_escape_string(strip_tags($_POST['gr_subject'][$k])); $gr_subject = is_array($_POST['gr_subject']) ? strip_tags($_POST['gr_subject'][$k]) : '';
$gr_admin = is_array($_POST['gr_admin']) ? strip_tags($_POST['gr_admin'][$k]) : '';
if($_POST['act_button'] == '선택수정') { if($_POST['act_button'] == '선택수정') {
$sql = " update {$g5['group_table']} $sql = " update {$g5['group_table']}
@@ -30,7 +31,7 @@ for ($i=0; $i<$count; $i++)
gr_order = '".sql_real_escape_string($_POST['gr_order'][$k])."' gr_order = '".sql_real_escape_string($_POST['gr_order'][$k])."'
where gr_id = '{$gr_id}' "; where gr_id = '{$gr_id}' ";
if ($is_admin != 'super') if ($is_admin != 'super')
$sql .= " and gr_admin = '{$_POST['gr_admin'][$k]}' "; $sql .= " and gr_admin = '{$gr_admin}' ";
sql_query($sql); sql_query($sql);
} else if($_POST['act_button'] == '선택삭제') { } else if($_POST['act_button'] == '선택삭제') {
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' "); $row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' ");
+1 -1
View File
@@ -1067,7 +1067,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<input type="checkbox" name="cf_social_servicelist[]" id="check_social_kakao" value="kakao" <?php echo option_array_checked('kakao', $config['cf_social_servicelist']); ?> > <input type="checkbox" name="cf_social_servicelist[]" id="check_social_kakao" value="kakao" <?php echo option_array_checked('kakao', $config['cf_social_servicelist']); ?> >
<label for="check_social_kakao">카카오 로그인을 사용합니다</label> <label for="check_social_kakao">카카오 로그인을 사용합니다</label>
<div> <div>
<h3>카카오 웹 Redirect Path</h3> <h3>카카오 로그인 Redirect URI</h3>
<p><?php echo get_social_callbackurl('kakao', true); ?></p> <p><?php echo get_social_callbackurl('kakao', true); ?></p>
</div> </div>
</div> </div>
+1 -1
View File
@@ -32,7 +32,7 @@ $check_keys = array('cf_lg_mid', 'cf_lg_mert_key', 'cf_cert_kcb_cd', 'cf_cert_kc
foreach( $check_keys as $key ){ foreach( $check_keys as $key ){
if ( isset($_POST[$key]) && $_POST[$key] ){ if ( isset($_POST[$key]) && $_POST[$key] ){
$_POST[$key] = preg_replace('/[^a-z0-9_\-]/i', '', $_POST[$key]); $_POST[$key] = preg_replace('/[^a-z0-9_\-\.]/i', '', $_POST[$key]);
} }
} }
+1
View File
@@ -35,6 +35,7 @@ if(!sql_query(" select co_skin from {$g5['content_table']} limit 1 ", false)) {
$html_title = "내용"; $html_title = "내용";
$g5['title'] = $html_title.' 관리'; $g5['title'] = $html_title.' 관리';
$readonly = '';
if ($w == "u") if ($w == "u")
{ {
+2 -2
View File
@@ -54,11 +54,11 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
</tr> </tr>
<tr> <tr>
<th scope="row">질문</th> <th scope="row">질문</th>
<td><?php echo editor_html('fa_subject', get_text($fa['fa_subject'], 0)); ?></td> <td><?php echo editor_html('fa_subject', get_text(html_purifier($fa['fa_subject']), 0)); ?></td>
</tr> </tr>
<tr> <tr>
<th scope="row">답변</th> <th scope="row">답변</th>
<td><?php echo editor_html('fa_content', get_text($fa['fa_content'], 0)); ?></td> <td><?php echo editor_html('fa_content', get_text(html_purifier($fa['fa_content']), 0)); ?></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
+4 -4
View File
@@ -117,25 +117,25 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<tr> <tr>
<th scope="row">상단 내용</th> <th scope="row">상단 내용</th>
<td> <td>
<?php echo editor_html('fm_head_html', get_text($fm['fm_head_html'], 0)); ?> <?php echo editor_html('fm_head_html', get_text(html_purifier($fm['fm_head_html']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">하단 내용</th> <th scope="row">하단 내용</th>
<td> <td>
<?php echo editor_html('fm_tail_html', get_text($fm['fm_tail_html'], 0)); ?> <?php echo editor_html('fm_tail_html', get_text(html_purifier($fm['fm_tail_html']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">모바일상단 내용</th> <th scope="row">모바일상단 내용</th>
<td> <td>
<?php echo editor_html('fm_mobile_head_html', get_text($fm['fm_mobile_head_html'], 0)); ?> <?php echo editor_html('fm_mobile_head_html', get_text(html_purifier($fm['fm_mobile_head_html']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">모바일하단 내용</th> <th scope="row">모바일하단 내용</th>
<td> <td>
<?php echo editor_html('fm_mobile_tail_html', get_text($fm['fm_mobile_tail_html'], 0)); ?> <?php echo editor_html('fm_mobile_tail_html', get_text(html_purifier($fm['fm_mobile_tail_html']), 0)); ?>
</td> </td>
</tr> </tr>
</tbody> </tbody>
+3 -1
View File
@@ -10,6 +10,8 @@ $html_title = '회원메일';
if ($w == 'u') { if ($w == 'u') {
$html_title .= '수정'; $html_title .= '수정';
$readonly = ' readonly'; $readonly = ' readonly';
$ma_id = (int) $ma_id;
$sql = " select * from {$g5['mail_table']} where ma_id = '{$ma_id}' "; $sql = " select * from {$g5['mail_table']} where ma_id = '{$ma_id}' ";
$ma = sql_fetch($sql); $ma = sql_fetch($sql);
@@ -44,7 +46,7 @@ include_once('./admin.head.php');
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th>
<td><?php echo editor_html("ma_content", get_text($ma['ma_content'], 0)); ?></td> <td><?php echo editor_html("ma_content", get_text(html_purifier($ma['ma_content']), 0)); ?></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
+7 -5
View File
@@ -9,11 +9,13 @@ auth_check($auth[$sub_menu], 'w');
check_admin_token(); check_admin_token();
$ma_id = isset($_POST['ma_id']) ? (int) $_POST['ma_id'] : 0;
$ma_subject = isset($_POST['ma_subject']) ? strip_tags($_POST['ma_subject']) : '';
if ($w == '') if ($w == '')
{ {
$sql = " insert {$g5['mail_table']} $sql = " insert {$g5['mail_table']}
set ma_id = '{$_POST['ma_id']}', set ma_subject = '{$ma_subject}',
ma_subject = '{$_POST['ma_subject']}',
ma_content = '{$_POST['ma_content']}', ma_content = '{$_POST['ma_content']}',
ma_time = '".G5_TIME_YMDHIS."', ma_time = '".G5_TIME_YMDHIS."',
ma_ip = '{$_SERVER['REMOTE_ADDR']}' "; ma_ip = '{$_SERVER['REMOTE_ADDR']}' ";
@@ -22,16 +24,16 @@ if ($w == '')
else if ($w == 'u') else if ($w == 'u')
{ {
$sql = " update {$g5['mail_table']} $sql = " update {$g5['mail_table']}
set ma_subject = '{$_POST['ma_subject']}', set ma_subject = '{$ma_subject}',
ma_content = '{$_POST['ma_content']}', ma_content = '{$_POST['ma_content']}',
ma_time = '".G5_TIME_YMDHIS."', ma_time = '".G5_TIME_YMDHIS."',
ma_ip = '{$_SERVER['REMOTE_ADDR']}' ma_ip = '{$_SERVER['REMOTE_ADDR']}'
where ma_id = '{$_POST['ma_id']}' "; where ma_id = '{$ma_id}' ";
sql_query($sql); sql_query($sql);
} }
else if ($w == 'd') else if ($w == 'd')
{ {
$sql = " delete from {$g5['mail_table']} where ma_id = '{$_POST['ma_id']}' "; $sql = " delete from {$g5['mail_table']} where ma_id = '{$ma_id}' ";
sql_query($sql); sql_query($sql);
} }
+7 -5
View File
@@ -20,9 +20,11 @@ $count = count($_POST['code']);
for ($i=0; $i<$count; $i++) for ($i=0; $i<$count; $i++)
{ {
$_POST = array_map_deep('trim', $_POST); $_POST = array_map_deep('trim', $_POST);
$_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags($_POST['me_link'][$i], 1) : '';
$code = strip_tags($_POST['code'][$i]); $code = is_array($_POST['code']) ? strip_tags($_POST['code'][$i]) : '';
$me_name = strip_tags($_POST['me_name'][$i]); $me_name = is_array($_POST['me_name']) ? strip_tags($_POST['me_name'][$i]) : '';
$me_link = (preg_match('/^javascript/i', $_POST['me_link'][$i]) || preg_match('/script:/i', $_POST['me_link'][$i])) ? G5_URL : strip_tags($_POST['me_link'][$i]); $me_link = (preg_match('/^javascript/i', $_POST['me_link'][$i]) || preg_match('/script:/i', $_POST['me_link'][$i])) ? G5_URL : strip_tags($_POST['me_link'][$i]);
if(!$code || !$me_name || !$me_link) if(!$code || !$me_name || !$me_link)
@@ -56,9 +58,9 @@ for ($i=0; $i<$count; $i++)
// 메뉴 등록 // 메뉴 등록
$sql = " insert into {$g5['menu_table']} $sql = " insert into {$g5['menu_table']}
set me_code = '$me_code', set me_code = '".$me_code."',
me_name = '$me_name', me_name = '".$me_name."',
me_link = '$me_link', me_link = '".$me_link."',
me_target = '".sql_real_escape_string(strip_tags($_POST['me_target'][$i]))."', me_target = '".sql_real_escape_string(strip_tags($_POST['me_target'][$i]))."',
me_order = '".sql_real_escape_string(strip_tags($_POST['me_order'][$i]))."', me_order = '".sql_real_escape_string(strip_tags($_POST['me_order'][$i]))."',
me_use = '".sql_real_escape_string(strip_tags($_POST['me_use'][$i]))."', me_use = '".sql_real_escape_string(strip_tags($_POST['me_use'][$i]))."',
+1 -1
View File
@@ -114,7 +114,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="nw_content">내용</label></th> <th scope="row"><label for="nw_content">내용</label></th>
<td><?php echo editor_html('nw_content', get_text($nw['nw_content'], 0)); ?></td> <td><?php echo editor_html('nw_content', get_text(html_purifier($nw['nw_content']), 0)); ?></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
+5 -5
View File
@@ -282,31 +282,31 @@ if(!isset($qaconfig['qa_include_head'])) {
<tr> <tr>
<th scope="row"><label for="qa_content_head">상단 내용</label></th> <th scope="row"><label for="qa_content_head">상단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_content_head", get_text($qaconfig['qa_content_head'], 0)); ?> <?php echo editor_html("qa_content_head", get_text(html_purifier($qaconfig['qa_content_head']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_content_tail">하단 내용</label></th> <th scope="row"><label for="qa_content_tail">하단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_content_tail", get_text($qaconfig['qa_content_tail'], 0)); ?> <?php echo editor_html("qa_content_tail", get_text(html_purifier($qaconfig['qa_content_tail']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_mobile_content_head">모바일 상단 내용</label></th> <th scope="row"><label for="qa_mobile_content_head">모바일 상단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_mobile_content_head", get_text($qaconfig['qa_mobile_content_head'], 0)); ?> <?php echo editor_html("qa_mobile_content_head", get_text(html_purifier($qaconfig['qa_mobile_content_head']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_mobile_content_tail">모바일 하단 내용</label></th> <th scope="row"><label for="qa_mobile_content_tail">모바일 하단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_mobile_content_tail", get_text($qaconfig['qa_mobile_content_tail'], 0)); ?> <?php echo editor_html("qa_mobile_content_tail", get_text(html_purifier($qaconfig['qa_mobile_content_tail']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_insert_content">글쓰기 기본 내용</label></th> <th scope="row"><label for="qa_insert_content">글쓰기 기본 내용</label></th>
<td> <td>
<textarea id="qa_insert_content" name="qa_insert_content" rows="5"><?php echo $qaconfig['qa_insert_content'] ?></textarea> <textarea id="qa_insert_content" name="qa_insert_content" rows="5"><?php echo html_purifier($qaconfig['qa_insert_content']); ?></textarea>
</td> </td>
</tr> </tr>
<?php for ($i=1; $i<=5; $i++) { ?> <?php for ($i=1; $i<=5; $i++) { ?>
+2
View File
@@ -50,6 +50,8 @@ if( $qa_include_tail && ! is_include_path_check($qa_include_tail, 1) ){
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.'; $error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
} }
$_POST['qa_title'] = strip_tags($_POST['qa_title']);
$sql = " update {$g5['qa_config_table']} $sql = " update {$g5['qa_config_table']}
set qa_title = '{$_POST['qa_title']}', set qa_title = '{$_POST['qa_title']}',
qa_category = '{$_POST['qa_category']}', qa_category = '{$_POST['qa_category']}',
+8 -5
View File
@@ -74,10 +74,13 @@ while($res = sql_fetch_array($qry))
"; ";
} }
$arr_ajax_msg['error'] = ""; $arr_ajax_msg = array(
$arr_ajax_msg['list_text'] = $list_text; 'error'=>'',
$arr_ajax_msg['page'] = $page; 'list_text'=>$list_text,
$arr_ajax_msg['total_count'] = $total_count; 'page'=>$page,
$arr_ajax_msg['total_page'] = $total_page; 'total_count'=>$total_count,
'total_page'=>$total_page
);
die( json_encode($arr_ajax_msg) ); die( json_encode($arr_ajax_msg) );
?> ?>
+5 -1
View File
@@ -12,6 +12,10 @@ if( $st && !in_array($st, array('hs_name', 'hs_hp', 'bk_no')) ){
$st = ''; $st = '';
} }
if( $sst && !in_array($sst, array('mb_id', 'bk_no', 'hs_name', 'hs_hp', 'hs_datetime', 'hs_flag', 'hs_code', 'hs_memo', 'hs_log')) ){
$sst = '';
}
auth_check($auth[$sub_menu], "r"); auth_check($auth[$sub_menu], "r");
$g5['title'] = "문자전송 상세내역"; $g5['title'] = "문자전송 상세내역";
@@ -22,7 +26,7 @@ if (!is_numeric($wr_no))
if ($spage < 1) $spage = 1; if ($spage < 1) $spage = 1;
if ($sst && trim($ssv)) if ($sst && trim($ssv))
$sql_search = " and $sst like '%$ssv%' "; $sql_search = " and $sst like '%".sql_real_escape_string($ssv)."%' ";
else else
$sql_search = ""; $sql_search = "";
+1 -1
View File
@@ -73,7 +73,7 @@ $result = sql_query($sql);
} }
$title = str_replace(array('<', '>', '&'), array("&lt;", "&gt;", "&amp;"), $referer); $title = str_replace(array('<', '>', '&'), array("&lt;", "&gt;", "&amp;"), $referer);
$link = '<a href="'.$row['vi_referer'].'" target="_blank">'; $link = '<a href="'.get_text($row['vi_referer']).'" target="_blank">';
$link = str_replace('&', "&amp;", $link); $link = str_replace('&', "&amp;", $link);
$link2 = '</a>'; $link2 = '</a>';
} }
+1 -1
View File
@@ -92,7 +92,7 @@ $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처
} }
$title = str_replace(array("<", ">"), array("&lt;", "&gt;"), $referer); $title = str_replace(array("<", ">"), array("&lt;", "&gt;"), $referer);
$link = '<a href="'.$row['vi_referer'].'" target="_blank" title="'.$title.'">'; $link = '<a href="'.get_text($row['vi_referer']).'" target="_blank" title="'.$title.'">';
} }
if ($is_admin == 'super') if ($is_admin == 'super')
+2 -2
View File
@@ -31,8 +31,8 @@ include_once(G5_PATH.'/head.sub.php');
$msg = isset($msg) ? strip_tags($msg) : ''; $msg = isset($msg) ? strip_tags($msg) : '';
$msg2 = str_replace("\\n", "<br>", $msg); $msg2 = str_replace("\\n", "<br>", $msg);
$url = clean_xss_tags($url); $url = clean_xss_tags($url, 1);
if (!$url) $url = clean_xss_tags($_SERVER['HTTP_REFERER']); if (!$url) $url = clean_xss_tags($_SERVER['HTTP_REFERER'], 1);
$url = preg_replace("/[\<\>\'\"\\\'\\\"\(\)]/", "", $url); $url = preg_replace("/[\<\>\'\"\\\'\\\"\(\)]/", "", $url);
$url = preg_replace('/\r\n|\r|\n|[^\x20-\x7e]/','', $url); $url = preg_replace('/\r\n|\r|\n|[^\x20-\x7e]/','', $url);
+5 -5
View File
@@ -5,11 +5,11 @@ include_once(G5_PATH.'/head.sub.php');
$pattern1 = "/[\<\>\'\"\\\'\\\"\(\)]/"; $pattern1 = "/[\<\>\'\"\\\'\\\"\(\)]/";
$pattern2 = "/\r\n|\r|\n|[^\x20-\x7e]/"; $pattern2 = "/\r\n|\r|\n|[^\x20-\x7e]/";
$url1 = preg_replace($pattern1, "", clean_xss_tags($url1)); $url1 = preg_replace($pattern1, "", clean_xss_tags($url1, 1));
$url1 = preg_replace($pattern2, "", $url1); $url1 = preg_replace($pattern2, "", $url1);
$url2 = preg_replace($pattern1, "", clean_xss_tags($url2)); $url2 = preg_replace($pattern1, "", clean_xss_tags($url2, 1));
$url2 = preg_replace($pattern2, "", $url2); $url2 = preg_replace($pattern2, "", $url2);
$url3 = preg_replace($pattern1, "", clean_xss_tags($url3)); $url3 = preg_replace($pattern1, "", clean_xss_tags($url3, 1));
$url3 = preg_replace($pattern2, "", $url3); $url3 = preg_replace($pattern2, "", $url3);
// url 체크 // url 체크
@@ -31,12 +31,12 @@ if (confirm(conf)) {
<article id="confirm_check"> <article id="confirm_check">
<header> <header>
<hgroup> <hgroup>
<h1><?php echo $header; ?></h1> <!-- 수행 중이던 작업 내용 --> <h1><?php echo get_text(strip_tags($header)); ?></h1> <!-- 수행 중이던 작업 내용 -->
<h2>아래 내용을 확인해 주세요.</h2> <h2>아래 내용을 확인해 주세요.</h2>
</hgroup> </hgroup>
</header> </header>
<p> <p>
<?php echo $msg; ?> <?php echo get_text(strip_tags($msg)); ?>
</p> </p>
<a href="<?php echo $url1; ?>">확인</a> <a href="<?php echo $url1; ?>">확인</a>
+2 -2
View File
@@ -51,9 +51,9 @@ else
// 다음 쪽지 // 다음 쪽지
$sql = " select * from {$g5[memo_table]} $sql = " select * from {$g5['memo_table']}
where me_id < '{$me_id}' where me_id < '{$me_id}'
and me_{$kind}_mb_id = '{$member[mb_id]}' and me_{$kind}_mb_id = '{$member['mb_id']}'
order by me_id desc order by me_id desc
limit 1 "; limit 1 ";
$next = sql_fetch($sql); $next = sql_fetch($sql);
+6 -2
View File
@@ -127,7 +127,7 @@ while ($row = sql_fetch_array($result))
// 제이프로님 코드제안 적용 // 제이프로님 코드제안 적용
$copy_file_name = ($bo_table !== $move_bo_table) ? $row3['bf_file'] : $row2['wr_id'].'_copy_'.$insert_id.'_'.$row3['bf_file']; $copy_file_name = ($bo_table !== $move_bo_table) ? $row3['bf_file'] : $row2['wr_id'].'_copy_'.$insert_id.'_'.$row3['bf_file'];
@copy($src_dir.'/'.$row3['bf_file'], $dst_dir.'/'.$copy_file_name); @copy($src_dir.'/'.$row3['bf_file'], $dst_dir.'/'.$copy_file_name);
@chmod($dst_dir.'/'.$row3['bf_file'], G5_FILE_PERMISSION); @chmod($dst_dir.'/'.$copy_file_name, G5_FILE_PERMISSION);
} }
$sql = " insert into {$g5['board_file_table']} $sql = " insert into {$g5['board_file_table']}
@@ -199,8 +199,12 @@ if ($sw == 'move')
for ($i=0; $i<count($save); $i++) for ($i=0; $i<count($save); $i++)
{ {
if( isset($save[$i]['bf_file']) && $save[$i]['bf_file'] ){ if( isset($save[$i]['bf_file']) && $save[$i]['bf_file'] ){
for ($k=0; $k<count($save[$i]['bf_file']); $k++) for ($k=0; $k<count($save[$i]['bf_file']); $k++) {
@unlink($save[$i]['bf_file'][$k]); @unlink($save[$i]['bf_file'][$k]);
// 썸네일 파일 삭제, 먼지손 님 코드 제안
delete_board_thumbnail($bo_table, basename($save[$i]['bf_file'][$k]));
}
} }
sql_query(" delete from $write_table where wr_parent = '{$save[$i]['wr_id']}' "); sql_query(" delete from $write_table where wr_parent = '{$save[$i]['wr_id']}' ");
+2 -2
View File
@@ -87,7 +87,7 @@ for($i=0;$i<count($_POST['chk_bn_id']);$i++)
$lf = ''; $lf = '';
for ($k=0; $k<count($notice_array); $k++) { for ($k=0; $k<count($notice_array); $k++) {
if ((int)$write['wr_id'] != (int)$notice_array[$k]) if ((int)$write['wr_id'] != (int)$notice_array[$k])
$bo_notice .= $nl.$notice_array[$k]; $bo_notice .= $lf.$notice_array[$k];
if($bo_notice) if($bo_notice)
$lf = ','; $lf = ',';
@@ -117,7 +117,7 @@ for($i=0;$i<count($_POST['chk_bn_id']);$i++)
// 코멘트 삭제 // 코멘트 삭제
if (!delete_point($write['mb_id'], $bo_table, $comment_id, '코멘트')) { if (!delete_point($write['mb_id'], $bo_table, $comment_id, '코멘트')) {
insert_point($write['mb_id'], $board['bo_comment_point'] * (-1), "{$board['bo_subject']} {$write[wr_parent]}-{$comment_id} 코멘트삭제"); insert_point($write['mb_id'], $board['bo_comment_point'] * (-1), "{$board['bo_subject']} {$write['wr_parent']}-{$comment_id} 코멘트삭제");
} }
// 코멘트 삭제 // 코멘트 삭제
+2 -2
View File
@@ -21,9 +21,9 @@ $row = sql_fetch($sql);
if ($row['cnt'] > 1) if ($row['cnt'] > 1)
alert('동일한 메일주소가 2개 이상 존재합니다.\\n\\n관리자에게 문의하여 주십시오.'); alert('동일한 메일주소가 2개 이상 존재합니다.\\n\\n관리자에게 문의하여 주십시오.');
$sql = " select mb_no, mb_id, mb_name, mb_nick, mb_email, mb_datetime from {$g5['member_table']} where mb_email = '$email' "; $sql = " select mb_no, mb_id, mb_name, mb_nick, mb_email, mb_datetime, mb_leave_date from {$g5['member_table']} where mb_email = '$email' ";
$mb = sql_fetch($sql); $mb = sql_fetch($sql);
if (!$mb['mb_id']) if (!$mb['mb_id'] || $mb['mb_leave_date'])
alert('존재하지 않는 회원입니다.'); alert('존재하지 않는 회원입니다.');
else if (is_admin($mb['mb_id'])) else if (is_admin($mb['mb_id']))
alert('관리자 아이디는 접근 불가합니다.'); alert('관리자 아이디는 접근 불가합니다.');
+1 -1
View File
@@ -67,7 +67,7 @@ if(is_file($skin_file)) {
$content = ''; $content = '';
if ($w == '') { if ($w == '') {
$content = $qaconfig['qa_insert_content']; $content = html_purifier($qaconfig['qa_insert_content']);
} else if($w == 'r') { } else if($w == 'r') {
if($is_dhtml_editor) if($is_dhtml_editor)
$content = '<div><br><br><br>====== 이전 답변내용 =======<br></div>'; $content = '<div><br><br><br>====== 이전 답변내용 =======<br></div>';
+2 -2
View File
@@ -13,8 +13,8 @@ if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR'])
$remote_addr = escape_trim($_SERVER['REMOTE_ADDR']); $remote_addr = escape_trim($_SERVER['REMOTE_ADDR']);
$referer = ""; $referer = "";
if (isset($_SERVER['HTTP_REFERER'])) if (isset($_SERVER['HTTP_REFERER']))
$referer = escape_trim(clean_xss_tags($_SERVER['HTTP_REFERER'])); $referer = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_REFERER'])));
$user_agent = escape_trim(clean_xss_tags($_SERVER['HTTP_USER_AGENT'])); $user_agent = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_USER_AGENT'])));
$vi_browser = ''; $vi_browser = '';
$vi_os = ''; $vi_os = '';
$vi_device = ''; $vi_device = '';
+1 -1
View File
@@ -5,7 +5,7 @@
********************/ ********************/
define('G5_VERSION', '그누보드5'); define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.3.2.9'); define('G5_GNUBOARD_VER', '5.3.3.3');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음 // 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true); define('_GNUBOARD_', true);
+2 -2
View File
@@ -19,8 +19,8 @@ else {
$g5_head_title .= " | ".$config['cf_title']; $g5_head_title .= " | ".$config['cf_title'];
} }
$g5['title'] = strip_tags(get_text($g5['title'])); $g5['title'] = strip_tags($g5['title']);
$g5_head_title = strip_tags(get_text($g5_head_title)); $g5_head_title = strip_tags($g5_head_title);
// 현재 접속자 // 현재 접속자
// 게시판 제목에 ' 포함되면 오류 발생 // 게시판 제목에 ' 포함되면 오류 발생
+20 -5
View File
@@ -2887,13 +2887,17 @@ function get_search_string($stx)
} }
// XSS 관련 태그 제거 // XSS 관련 태그 제거
function clean_xss_tags($str) function clean_xss_tags($str, $check_entities=0)
{ {
$str_len = strlen($str); $str_len = strlen($str);
$i = 0; $i = 0;
while($i <= $str_len){ while($i <= $str_len){
$result = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $str); $result = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $str);
if( $check_entities ){
$result = str_replace(array('&colon;', '&lpar;', '&rpar;', '&NewLine;', '&Tab;'), '', $result);
}
if((string)$result === (string)$str) break; if((string)$result === (string)$str) break;
@@ -3421,7 +3425,7 @@ function get_head_title($title){
global $g5; global $g5;
if( isset($g5['board_title']) && $g5['board_title'] ){ if( isset($g5['board_title']) && $g5['board_title'] ){
$title = strip_tags(get_text($g5['board_title'])); $title = strip_tags($g5['board_title']);
} }
return $title; return $title;
@@ -3497,11 +3501,16 @@ function get_call_func_cache($func, $args=array()){
function is_include_path_check($path='', $is_input='') function is_include_path_check($path='', $is_input='')
{ {
if( $path ){ if( $path ){
if( strlen($path) > 255 ){
return false;
}
if ($is_input){ if ($is_input){
// 장태진 @jtjisgod <jtjisgod@gmail.com> 추가 // 장태진 @jtjisgod <jtjisgod@gmail.com> 추가
// 보안 목적 : rar wrapper 차단 // 보안 목적 : rar wrapper 차단
if( stripos($path, 'rar:') !== false || stripos($path, 'php:') !== false || stripos($path, 'zlib:') !== false || stripos($path, 'bzip2:') !== false || stripos($path, 'zip:') !== false || stripos($path, 'data:') !== false || stripos($path, 'phar:') !== false ){ if( stripos($path, 'rar:') !== false || stripos($path, 'php:') !== false || stripos($path, 'zlib:') !== false || stripos($path, 'bzip2:') !== false || stripos($path, 'zip:') !== false || stripos($path, 'data:') !== false || stripos($path, 'phar:') !== false || stripos($path, 'file:') !== false ){
return false; return false;
} }
@@ -3552,14 +3561,20 @@ function is_include_path_check($path='', $is_input='')
if( preg_match('/\/data\/(file|editor|qa|cache|member|member_image|session|tmp)\/[A-Za-z0-9_]{1,20}\//i', $replace_path) ){ if( preg_match('/\/data\/(file|editor|qa|cache|member|member_image|session|tmp)\/[A-Za-z0-9_]{1,20}\//i', $replace_path) ){
return false; return false;
} }
if( (preg_match('/\.\.\//i', $replace_path) || preg_match('/^\/.*/i', $replace_path)) && preg_match('/plugin\//i', $replace_path) && preg_match('/okname\//i', $replace_path) ){ if( preg_match('/'.G5_PLUGIN_DIR.'\//i', $replace_path) && (preg_match('/'.G5_OKNAME_DIR.'\//i', $replace_path) || preg_match('/'.G5_KCPCERT_DIR.'\//i', $replace_path) || preg_match('/'.G5_LGXPAY_DIR.'\//i', $replace_path)) ){
return false;
}
if( substr_count($replace_path, './') > 5 ){
return false;
}
if( defined('G5_SHOP_DIR') && preg_match('/'.G5_SHOP_DIR.'\//i', $replace_path) && preg_match('/kcp\//i', $replace_path) ){
return false; return false;
} }
} }
$extension = pathinfo($path, PATHINFO_EXTENSION); $extension = pathinfo($path, PATHINFO_EXTENSION);
if($extension && preg_match('/(jpg|jpeg|png|gif|bmp|conf)$/i', $extension)) { if($extension && preg_match('/(jpg|jpeg|png|gif|bmp|conf|php\-x)$/i', $extension)) {
return false; return false;
} }
} }
+17 -12
View File
@@ -20339,18 +20339,23 @@ nhn.husky.HuskyCore.mixin(nhn.husky.SE2M_TableEditor, {
addCSSClass : function(sClassName, sClassRule){ addCSSClass : function(sClassName, sClassRule){
var oDoc = this.oApp.getWYSIWYGDocument(); var oDoc = this.oApp.getWYSIWYGDocument();
if(oDoc.styleSheets[0] && oDoc.styleSheets[0].addRule){
// IE try {
oDoc.styleSheets[0].addRule("." + sClassName, sClassRule); if(oDoc.styleSheets[0] && oDoc.styleSheets[0].addRule){
}else{ // IE
// FF oDoc.styleSheets[0].addRule("." + sClassName, sClassRule);
var elHead = oDoc.getElementsByTagName("HEAD")[0]; }else{
var elStyle = oDoc.createElement ("STYLE"); // FF
//styleElement.type = "text / css"; var elHead = oDoc.getElementsByTagName("HEAD")[0];
elHead.appendChild (elStyle); var elStyle = oDoc.createElement ("STYLE");
//styleElement.type = "text / css";
elStyle.sheet.insertRule("." + sClassName + " { "+sClassRule+" }", 0); elHead.appendChild (elStyle);
}
elStyle.sheet.insertRule("." + sClassName + " { "+sClassRule+" }", 0);
}
} catch (e) {
//console.log(e);
}
}, },
// [SMARTEDITORSUS-1533] // [SMARTEDITORSUS-1533]
+2 -2
View File
@@ -1,2 +1,2 @@
/* Copyright (C) NAVER corp. Licensed under LGPL v2. @see https://github.com/naver/smarteditor2/blob/master/LICENSE.md */ /* Copyright (C) NAVER corp. Licensed under LGPL v2. @see https://github.com/naver/smarteditor2/blob/master/LICENSE.md */
if(typeof window.nhn=="undefined"){window.nhn={}}if(!nhn.husky){nhn.husky={}}(function(){var b=/^\$(LOCAL|BEFORE|ON|AFTER)_/,c=/^\$(BEFORE|ON|AFTER)_MSG_APP_READY$/,a=[],d={};nhn.husky.HuskyCore=jindo.$Class({name:"HuskyCore",aCallerStack:null,bMobile:jindo.$Agent().navigator().mobile||jindo.$Agent().navigator().msafari,$init:function(e){this.htOptions=e||{};a.push(this);if(this.htOptions.oDebugger){nhn.husky.HuskyCore.getCore=function(){return a};this.htOptions.oDebugger.setApp(this)}this.messageQueue=[];this.oMessageMap={};this.oDisabledMessage={};this.oLazyMessage={};this.aPlugins=[];this.appStatus=nhn.husky.APP_STATUS.NOT_READY;this.aCallerStack=[];this._fnWaitForPluginReady=jindo.$Fn(this._waitForPluginReady,this).bind();this.registerPlugin(this)},setDebugger:function(e){this.htOptions.oDebugger=e;e.setApp(this)},exec:function(g,f,e){if(this.appStatus==nhn.husky.APP_STATUS.NOT_READY){this.messageQueue[this.messageQueue.length]={msg:g,args:f,event:e};return true}this.exec=this._exec;this.exec(g,f,e)},delayedExec:function(j,g,e,f){var h=jindo.$Fn(this.exec,this).bind(j,g,f);setTimeout(h,e)},_exec:function(g,f,e){return(this._exec=this.htOptions.oDebugger?this._execWithDebugger:this._execWithoutDebugger).call(this,g,f,e)},_execWithDebugger:function(h,g,f){this.htOptions.oDebugger.log_MessageStart(h,g);var e=this._doExec(h,g,f);this.htOptions.oDebugger.log_MessageEnd(h,g);return e},_execWithoutDebugger:function(g,f,e){return this._doExec(g,f,e)},_doExec:function(m,j,h){var f=false;if(this.oLazyMessage[m]){var l=this.oLazyMessage[m];this._loadLazyFiles(m,j,h,l.aFilenames,0);return false}if(!this.oDisabledMessage[m]){var g=[];if(j&&j.length){var e=j.length;for(var k=0;k<e;k++){g[k]=j[k]}}if(h){g[g.length]=h}f=this._execMsgStep("BEFORE",m,g);if(f){f=this._execMsgStep("ON",m,g)}if(f){f=this._execMsgStep("AFTER",m,g)}}return f},registerPlugin:function(f){if(!f){throw ("An error occured in registerPlugin(): invalid plug-in")}f.nIdx=this.aPlugins.length;f.oApp=this;this.aPlugins[f.nIdx]=f;if(f.status!=nhn.husky.PLUGIN_STATUS.NOT_READY){f.status=nhn.husky.PLUGIN_STATUS.READY}if(this.appStatus!=nhn.husky.APP_STATUS.NOT_READY){for(var e in f){if(b.test(e)){this.addToMessageMap(e,f)}}}this.exec("MSG_PLUGIN_REGISTERED",[f]);return f.nIdx},disableMessage:function(e,f){this.oDisabledMessage[e]=f},registerBrowserEvent:function(j,k,f,h,e){h=h||[];var g=(e)?jindo.$Fn(this.delayedExec,this).bind(f,h,e):jindo.$Fn(this.exec,this).bind(f,h);return jindo.$Fn(g,this).attach(j,k)},run:function(h){this.htRunOptions=h||{};this._changeAppStatus(nhn.husky.APP_STATUS.WAITING_FOR_PLUGINS_READY);var g=this.messageQueue.length;for(var f=0;f<g;f++){var e=this.messageQueue[f];this.exec(e.msg,e.args,e.event)}this._fnWaitForPluginReady()},acceptLocalBeforeFirstAgain:function(f,e){f._husky_bRun=!e},createMessageMap:function(e){this.oMessageMap[e]=[];var g=this.aPlugins.length;for(var f=0;f<g;f++){this._doAddToMessageMap(e,this.aPlugins[f])}},addToMessageMap:function(e,f){if(!this.oMessageMap[e]){return}this._doAddToMessageMap(e,f)},_changeAppStatus:function(e){this.appStatus=e;if(this.appStatus==nhn.husky.APP_STATUS.READY){this.exec("MSG_APP_READY")}},_execMsgStep:function(e,f,g){return(this._execMsgStep=this.htOptions.oDebugger?this._execMsgStepWithDebugger:this._execMsgStepWithoutDebugger).call(this,e,f,g)},_execMsgStepWithDebugger:function(e,g,h){this.htOptions.oDebugger.log_MessageStepStart(e,g,h);var f=this._execMsgHandler("$"+e+"_"+g,h);this.htOptions.oDebugger.log_MessageStepEnd(e,g,h);return f},_execMsgStepWithoutDebugger:function(e,f,g){return this._execMsgHandler("$"+e+"_"+f,g)},_execMsgHandler:function(f,g){var h;if(!this.oMessageMap[f]){this.createMessageMap(f)}var k=this.oMessageMap[f];var j=k.length;if(j===0){return true}var e=true;if(c.test(f)){for(h=0;h<j;h++){if(this._execHandler(k[h],f,g)===false){e=false;break}}}else{for(h=0;h<j;h++){if(!k[h]._husky_bRun){k[h]._husky_bRun=true;if(typeof k[h].$LOCAL_BEFORE_FIRST=="function"&&this._execHandler(k[h],"$LOCAL_BEFORE_FIRST",[f,g])===false){continue}}if(typeof k[h].$LOCAL_BEFORE_ALL=="function"){if(this._execHandler(k[h],"$LOCAL_BEFORE_ALL",[f,g])===false){continue}}if(this._execHandler(k[h],f,g)===false){e=false;break}}}return e},_execHandler:function(g,f,e){return(this._execHandler=this.htOptions.oDebugger?this._execHandlerWithDebugger:this._execHandlerWithoutDebugger).call(this,g,f,e)},_execHandlerWithDebugger:function(k,h,g){this.htOptions.oDebugger.log_CallHandlerStart(k,h,g);var f;try{this.aCallerStack.push(k);f=k[h].apply(k,g);this.aCallerStack.pop()}catch(j){this.htOptions.oDebugger.handleException(j);f=false}this.htOptions.oDebugger.log_CallHandlerEnd(k,h,g);return f},_execHandlerWithoutDebugger:function(h,g,f){this.aCallerStack.push(h);var e=h[g].apply(h,f);this.aCallerStack.pop();return e},_doAddToMessageMap:function(f,h){if(typeof h[f]!="function"){return}var j=this.oMessageMap[f];for(var g=0,e=j.length;g<e;g++){if(this.oMessageMap[f][g]==h){return}}this.oMessageMap[fLine truncated void 0===window.nhn&&(window.nhn={}),nhn.husky||(nhn.husky={}),function(){var d=/^\$(LOCAL|BEFORE|ON|AFTER)_/,r=/^\$(BEFORE|ON|AFTER)_MSG_APP_READY$/,c=[],a={};nhn.husky.HuskyCore=jindo.$Class({name:"HuskyCore",aCallerStack:null,bMobile:jindo.$Agent().navigator().mobile||jindo.$Agent().navigator().msafari,$init:function(e){this.htOptions=e||{},c.push(this),this.htOptions.oDebugger&&(nhn.husky.HuskyCore.getCore=function(){return c},this.htOptions.oDebugger.setApp(this)),this.messageQueue=[],this.oMessageMap={},this.oDisabledMessage={},this.oLazyMessage={},this.aPlugins=[],this.appStatus=nhn.husky.APP_STATUS.NOT_READY,this.aCallerStack=[],this._fnWaitForPluginReady=jindo.$Fn(this._waitForPluginReady,this).bind(),this.registerPlugin(this)},setDebugger:function(e){(this.htOptions.oDebugger=e).setApp(this)},exec:function(e,t,i){if(this.appStatus==nhn.husky.APP_STATUS.NOT_READY)return this.messageQueue[this.messageQueue.length]={msg:e,args:t,event:i},!0;this.exec=this._exec,this.exec(e,t,i)},delayedExec:function(e,t,i,n){var o=jindo.$Fn(this.exec,this).bind(e,t,n);setTimeout(o,i)},_exec:function(e,t,i){return(this._exec=this.htOptions.oDebugger?this._execWithDebugger:this._execWithoutDebugger).call(this,e,t,i)},_execWithDebugger:function(e,t,i){this.htOptions.oDebugger.log_MessageStart(e,t);var n=this._doExec(e,t,i);return this.htOptions.oDebugger.log_MessageEnd(e,t),n},_execWithoutDebugger:function(e,t,i){return this._doExec(e,t,i)},_doExec:function(e,t,i){var n=!1;if(this.oLazyMessage[e]){var o=this.oLazyMessage[e];return this._loadLazyFiles(e,t,i,o.aFilenames,0),!1}if(!this.oDisabledMessage[e]){var s=[];if(t&&t.length)for(var r=t.length,a=0;a<r;a++)s[a]=t[a];i&&(s[s.length]=i),(n=this._execMsgStep("BEFORE",e,s))&&(n=this._execMsgStep("ON",e,s)),n&&(n=this._execMsgStep("AFTER",e,s))}return n},registerPlugin:function(e){if(!e)throw"An error occured in registerPlugin(): invalid plug-in";if(e.nIdx=this.aPlugins.length,((e.oApp=this).aPlugins[e.nIdx]=e).status!=nhn.husky.PLUGIN_STATUS.NOT_READY&&(e.status=nhn.husky.PLUGIN_STATUS.READY),this.appStatus!=nhn.husky.APP_STATUS.NOT_READY)for(var t in e)d.test(t)&&this.addToMessageMap(t,e);return this.exec("MSG_PLUGIN_REGISTERED",[e]),e.nIdx},disableMessage:function(e,t){this.oDisabledMessage[e]=t},registerBrowserEvent:function(e,t,i,n,o){n=n||[];var s=o?jindo.$Fn(this.delayedExec,this).bind(i,n,o):jindo.$Fn(this.exec,this).bind(i,n);return jindo.$Fn(s,this).attach(e,t)},run:function(e){this.htRunOptions=e||{},this._changeAppStatus(nhn.husky.APP_STATUS.WAITING_FOR_PLUGINS_READY);for(var t=this.messageQueue.length,i=0;i<t;i++){var n=this.messageQueue[i];this.exec(n.msg,n.args,n.event)}this._fnWaitForPluginReady()},acceptLocalBeforeFirstAgain:function(e,t){e._husky_bRun=!t},createMessageMap:function(e){this.oMessageMap[e]=[];for(var t=this.aPlugins.length,i=0;i<t;i++)this._doAddToMessageMap(e,this.aPlugins[i])},addToMessageMap:function(e,t){this.oMessageMap[e]&&this._doAddToMessageMap(e,t)},_changeAppStatus:function(e){this.appStatus=e,this.appStatus==nhn.husky.APP_STATUS.READY&&this.exec("MSG_APP_READY")},_execMsgStep:function(e,t,i){return(this._execMsgStep=this.htOptions.oDebugger?this._execMsgStepWithDebugger:this._execMsgStepWithoutDebugger).call(this,e,t,i)},_execMsgStepWithDebugger:function(e,t,i){this.htOptions.oDebugger.log_MessageStepStart(e,t,i);var n=this._execMsgHandler("$"+e+"_"+t,i);return this.htOptions.oDebugger.log_MessageStepEnd(e,t,i),n},_execMsgStepWithoutDebugger:function(e,t,i){return this._execMsgHandler("$"+e+"_"+t,i)},_execMsgHandler:function(e,t){var i;this.oMessageMap[e]||this.createMessageMap(e);var n=this.oMessageMap[e],o=n.length;if(0===o)return!0;var s=!0;if(r.test(e)){for(i=0;i<o;i++)if(!1===this._execHandler(n[i],e,t)){s=!1;break}}else for(i=0;i<o;i++)if((n[i]._husky_bRun||(n[i]._husky_bRun=!0,"function"!=typeof n[i].$LOCAL_BEFORE_FIRST||!1!==this._execHandler(n[i],"$LOCAL_BEFORE_FIRST",[e,t])))&&("function"!=typeof n[i].$LOCAL_BEFORE_ALL||!1!==this._execHandler(n[i],"$LOCAL_BEFORE_ALL",[e,t]))&&!1===this._execHandler(n[i],e,t)){s=!1;break}return s},_execHandler:function(e,t,i){return(this._execHandler=this.htOptions.oDebugger?this._execHandlerWithDebugger:this._execHandlerWithoutDebugger).call(this,e,t,i)},_execHandlerWithDebugger:function(e,t,i){var n;this.htOptions.oDebugger.log_CallHandlerStart(e,t,i);try{this.aCallerStack.push(e),n=e[t].apply(e,i),this.aCallerStack.pop()}catch(e){this.htOptions.oDebugger.handleException(e),n=!1}return this.htOptions.oDebugger.log_CallHandlerEnd(e,t,i),n},_execHandlerWithoutDebugger:function(e,t,i){this.aCallerStack.push(e);var n=e[t].apply(e,i);return this.aCallerStack.pop(),n},_doAddToMessageMap:function(e,t){if("function"==typeof t[e]){for(var i=0,n=this.oMessageMap[e].length;i<n;i++)if(this.oMessageMap[e][i]==t)return;this.oMessageMap[e][i]=t}},_waitForPluginReady:function(){for(var e=!0,t=0;t<this.aPlugins.length;t++)if(this.aPlugins[t].status==nhn.husky.PLUGIN_STATUS.NOT_READY){e=!1;break}e?this.Line truncated
+1 -1
View File
@@ -5,7 +5,7 @@ if(!$config['cf_cert_use'] || $config['cf_cert_hp'] != 'kcb')
alert('기본환경설정에서 KCB 휴대폰본인확인 서비스로 설정해 주십시오.'); alert('기본환경설정에서 KCB 휴대폰본인확인 서비스로 설정해 주십시오.');
// key 디렉토리 체크 // key 디렉토리 체크
include_once('./key_dir_check.php'); require_once('./key_dir_check.php');
/************************************************************************** /**************************************************************************
* okname 생년월일 본인 확인서비스 파라미터 * okname 생년월일 본인 확인서비스 파라미터
+2 -2
View File
@@ -15,8 +15,8 @@ foreach($check_arrays as $key){
certify_count_check($member['mb_id'], 'hp'); certify_count_check($member['mb_id'], 'hp');
// KISA 취약점 내용(KVE-2018-0291) hpcert1.php의 $cmd 함수에 대한 인자 값은 hpcert_config.php 파일에서 설정되나, 이를 다른 페이지에서 포함한 뒤 호출할 시 임의 값 설정 가능 // KISA 취약점 내용(KVE-2018-0291) hpcert1.php의 $cmd 함수에 대한 인자 값은 hpcert_config.php 파일에서 설정되나, 이를 다른 페이지에서 포함한 뒤 호출할 시 임의 값 설정 가능
// 이에 include_once 를 include 로 수정함 // 이에 include_once 를 require 로 수정함
include('./hpcert.config.php'); require('./hpcert.config.php');
/************************************************************************** /**************************************************************************
okname 실행 okname 실행
**************************************************************************/ **************************************************************************/
+3 -3
View File
@@ -1,7 +1,7 @@
<?php <?php
include_once('./_common.php'); include_once('./_common.php');
$check_arrays = array('exe', 'keypath', 'memId', 'endPointURL', 'logPath'); $check_arrays = array('exe', 'keypath', 'memId', 'endPointURL', 'endPointUrl', 'logPath');
foreach($check_arrays as $key){ foreach($check_arrays as $key){
if( isset($_REQUEST[$key]) && $_REQUEST[$key] ){ if( isset($_REQUEST[$key]) && $_REQUEST[$key] ){
@@ -12,8 +12,8 @@ foreach($check_arrays as $key){
} }
// KISA 취약점 내용(KVE-2018-0291) hpcert1.php의 $cmd 함수에 대한 인자 값은 hpcert_config.php 파일에서 설정되나, 이를 다른 페이지에서 포함한 뒤 호출할 시 임의 값 설정 가능 // KISA 취약점 내용(KVE-2018-0291) hpcert1.php의 $cmd 함수에 대한 인자 값은 hpcert_config.php 파일에서 설정되나, 이를 다른 페이지에서 포함한 뒤 호출할 시 임의 값 설정 가능
// 이에 include_once 를 include 로 수정함 // 이에 include_once 를 require 로 수정함
include('./hpcert.config.php'); require('./hpcert.config.php');
/************************************************************************** /**************************************************************************
파일명 : safe_hs_cert3.php 파일명 : safe_hs_cert3.php
+1 -1
View File
@@ -5,7 +5,7 @@ if(!$config['cf_cert_use'] || $config['cf_cert_ipin'] != 'kcb')
alert('기본환경설정에서 KCB 아이핀 본인확인 서비스로 설정해 주십시오.'); alert('기본환경설정에서 KCB 아이핀 본인확인 서비스로 설정해 주십시오.');
// key 디렉토리 체크 // key 디렉토리 체크
include_once('./key_dir_check.php'); require_once('./key_dir_check.php');
$exe = ''; $exe = '';
// 실행모듈 // 실행모듈
+2 -2
View File
@@ -15,8 +15,8 @@ foreach($check_arrays as $key){
certify_count_check($member['mb_id'], 'ipin'); certify_count_check($member['mb_id'], 'ipin');
// KISA 취약점 내용(KVE-2018-0291) hpcert1.php의 $cmd 함수에 대한 인자 값은 hpcert_config.php 파일에서 설정되나, 이를 다른 페이지에서 포함한 뒤 호출할 시 임의 값 설정 가능 // KISA 취약점 내용(KVE-2018-0291) hpcert1.php의 $cmd 함수에 대한 인자 값은 hpcert_config.php 파일에서 설정되나, 이를 다른 페이지에서 포함한 뒤 호출할 시 임의 값 설정 가능
// 이에 include_once 를 include 로 수정함 // 이에 include_once 를 require 로 수정함
include('./ipin.config.php'); require('./ipin.config.php');
$option = "C";// Option $option = "C";// Option
+1 -1
View File
@@ -11,7 +11,7 @@ foreach($check_arrays as $key){
$$key = ''; $$key = '';
} }
include('./ipin.config.php'); require('./ipin.config.php');
//아이핀팝업에서 조회한 PERSONALINFO이다. //아이핀팝업에서 조회한 PERSONALINFO이다.
@$encPsnlInfo = $_POST["encPsnlInfo"]; @$encPsnlInfo = $_POST["encPsnlInfo"];
+10 -5
View File
@@ -18,6 +18,8 @@ if (is_numeric($fg_no))
else else
$sql_group = ""; $sql_group = "";
$sv = isset($sv) ? get_search_string($sv) : '';
if ($st == 'all') { if ($st == 'all') {
$sql_search = "and (fo_name like '%{$sv}%' or fo_content like '%{$sv}%')"; $sql_search = "and (fo_name like '%{$sv}%' or fo_content like '%{$sv}%')";
} else if ($st == 'name') { } else if ($st == 'name') {
@@ -61,10 +63,13 @@ for($k=0;$res = sql_fetch_array($qry);$k++)
$list_text[$k]['fo_name'] = cut_str($res['fo_name'],20); $list_text[$k]['fo_name'] = cut_str($res['fo_name'],20);
} }
$arr_ajax_msg['error'] = ""; $arr_ajax_msg = array(
$arr_ajax_msg['list_text'] = $list_text; 'error'=>'',
$arr_ajax_msg['page'] = $page; 'list_text'=>$list_text,
$arr_ajax_msg['total_count'] = $total_count; 'page'=>$page,
$arr_ajax_msg['total_page'] = $total_page; 'total_count'=>$total_count,
'total_page'=>$total_page
);
die( json_encode($arr_ajax_msg) ); die( json_encode($arr_ajax_msg) );
?> ?>
+33 -6
View File
@@ -24,11 +24,38 @@ $bo_v_sns_class = $config['cf_kakao_js_apikey'] ? 'show_kakao' : '';
?> ?>
<?php if($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="//developers.kakao.com/sdk/js/kakao.min.js" charset="utf-8"></script>
<script src="<?php echo G5_JS_URL; ?>/kakaolink.js"></script> <script src="<?php echo G5_JS_URL; ?>/kakaolink.js" charset="utf-8"></script>
<script> <script type='text/javascript'>
// 사용할 앱의 Javascript 키를 설정해 주세요. //<![CDATA[
Kakao.init("<?php echo $config['cf_kakao_js_apikey']; ?>"); // 사용할 앱의 Javascript 키를 설정해 주세요.
Kakao.init("<?php echo $config['cf_kakao_js_apikey']; ?>");
function Kakao_sendLink() {
var webUrl = location.protocol+"<?php echo '//'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; ?>",
imageUrl = $("#bo_v_img").find("img").attr("src") || $(".view_image").find("img").attr("src") || '';
Kakao.Link.sendDefault({
objectType: 'feed',
content: {
title: "<?php echo str_replace(array('%27', '&#034;' , '\"'), '', strip_tags($view['subject'])); ?>",
description: "<?php echo preg_replace('/\r\n|\r|\n/','', strip_tags(get_text(cut_str(strip_tags($view['wr_content']), 200), 1))); ?>",
imageUrl: imageUrl,
link: {
mobileWebUrl: webUrl,
webUrl: webUrl
}
},
buttons: [{
title: '자세히 보기',
link: {
mobileWebUrl: webUrl,
webUrl: webUrl
}
}]
});
}
//]]>
</script> </script>
<?php } ?> <?php } ?>
<div class="bo_v_snswr"> <div class="bo_v_snswr">
@@ -39,7 +66,7 @@ $bo_v_sns_class = $config['cf_kakao_js_apikey'] ? 'show_kakao' : '';
<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 $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> <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($config['cf_kakao_js_apikey']) { ?> <?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> <li><a href="javascript:Kakao_sendLink();" class="sns_k" ><img src="<?php echo G5_SNS_URL; ?>/icon/kakaotalk.png" alt="카카오톡으로 보내기" width="20"></a></li>
<?php } ?> <?php } ?>
</ul> </ul>
</div> </div>
-4
View File
@@ -48,10 +48,6 @@ function get_social_callbackurl($provider, $no_domain=false){
$base_url = G5_SOCIAL_LOGIN_BASE_URL; $base_url = G5_SOCIAL_LOGIN_BASE_URL;
if( $provider === 'kakao' && $no_domain ){
$base_url = '/'.ltrim(parse_url($base_url, PHP_URL_PATH), '/');
}
if ( $provider === 'twitter' ){ if ( $provider === 'twitter' ){
return $base_url; return $base_url;
} }
+1
View File
@@ -44,6 +44,7 @@ if( ! $mb_nick || ! $mb_name ){
$tmp = explode('@', $mb_email); $tmp = explode('@', $mb_email);
$mb_nick = $mb_nick ? $mb_nick : $tmp[0]; $mb_nick = $mb_nick ? $mb_nick : $tmp[0];
$mb_name = $mb_name ? $mb_name : $tmp[0]; $mb_name = $mb_name ? $mb_name : $tmp[0];
$mb_nick = exist_mb_nick_recursive($mb_nick, '');
} }
if( ! isset($mb_password) || ! $mb_password ){ if( ! isset($mb_password) || ! $mb_password ){
+2 -2
View File
@@ -13,8 +13,8 @@ else {
$g5_head_title .= " | ".$config['cf_title']; $g5_head_title .= " | ".$config['cf_title'];
} }
$g5['title'] = strip_tags(get_text($g5['title'])); $g5['title'] = strip_tags($g5['title']);
$g5_head_title = strip_tags(get_text($g5_head_title)); $g5_head_title = strip_tags($g5_head_title);
// 현재 접속자 // 현재 접속자
// 게시판 제목에 ' 포함되면 오류 발생 // 게시판 제목에 ' 포함되면 오류 발생