security: KVE-2026-1899 KVE-2026-1900 KVE-2026-1909 입력 및 권한 검증 강화

상품 정렬값을 허용 목록으로 검증하고 관리자 권한 컨텍스트를 명확히 구분한다.

모바일 KCP의 Windows 명령 인자를 안전하게 조립하고 검증한다.
This commit is contained in:
whitedot committed 2026-09-01 11:40:15 +09:00
1 parent 375a8336e8
commit 71209fc7c9
40 files changed
+185 -148

No files matched your search

@@ -4,7 +4,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<section id="bo_v_ans">
<?php
if($is_admin) // 관리자이면 답변등록
if($is_admin === 'super') // 최고관리자이면 답변등록
{
?>
<h2>답변등록</h2>
@@ -151,4 +151,4 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<?php
}
?>
</section>
</section>
@@ -27,7 +27,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
if($row['iq_secret']) {
$iq_subject .= ' <img src="'.G5_MSHOP_SKIN_URL.'/img/icon_secret.gif" alt="비밀글">';
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
} else {
$iq_question = '비밀글로 보호된 문의입니다.';
@@ -87,7 +87,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
<?php } ?>
</div>
<?php if ($is_admin || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
<?php if ($is_admin === 'super' || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
<div class="sit_qa_cmd">
<a href="<?php echo $itemqa_form."&amp;iq_id={$row['iq_id']}&amp;w=u"; ?>" class="itemqa_form btn01" onclick="return false;">수정</a>
<a href="<?php echo $itemqa_formupdate."&amp;iq_id={$row['iq_id']}&amp;w=d&amp;hash={$hash}"; ?>" class="itemqa_delete btn01">삭제</a>
@@ -148,4 +148,4 @@ $(function(){
});
});
</script>
<!-- } 상품문의 목록 끝 -->
<!-- } 상품문의 목록 끝 -->
@@ -46,7 +46,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
if($row['iq_secret']) {
$iq_subject .= ' <i class="fa fa-lock" aria-hidden="true"></i>';
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
} else {
$iq_question = '비밀글로 보호된 문의입니다.';
@@ -141,4 +141,4 @@ $(function(){
});
});
</script>
<!-- } 전체 상품 사용후기 목록 끝 -->
<!-- } 전체 상품 사용후기 목록 끝 -->
@@ -52,7 +52,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
<?php echo $is_content; // 사용후기 내용 ?>
</div>
<?php if ($is_admin || $row['mb_id'] == $member['mb_id']) { ?>
<?php if (is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) { ?>
<div class="sit_use_cmd">
<a href="<?php echo $itemuse_form."&amp;is_id={$row['is_id']}&amp;w=u"; ?>" class="itemuse_form btn01" onclick="return false;">수정</a>
<a href="<?php echo $itemuse_formupdate."&amp;is_id={$row['is_id']}&amp;w=d&amp;hash={$hash}"; ?>" class="itemuse_delete btn01">삭제</a>
@@ -130,4 +130,4 @@ $(function(){
});
});
</script>
<!-- } 상품 사용후기 끝 -->
<!-- } 상품 사용후기 끝 -->
+8 -14
View File
@@ -1,20 +1,14 @@
<?php
include_once('../../../common.php');
if (isset($_REQUEST['sort']) && !preg_match("/(--|#|\/\*|\*\/)/", $_REQUEST['sort'])) {
$sort = trim($_REQUEST['sort']);
$sort = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\s]/", "", $sort);
} else {
$sort = '';
}
if (isset($_REQUEST['sortodr'])) {
$sortodr = preg_match("/^(asc|desc)$/i", $sortodr) ? $sortodr : '';
} else {
$sortodr = '';
}
if (!defined('G5_USE_SHOP') || !G5_USE_SHOP)
die('<p>쇼핑몰 설치 후 이용해 주십시오.</p>');
define('_SHOP_', true);
$is_admin = get_super_admin_type($is_admin);
$request_sort = (isset($_REQUEST['sort']) && is_string($_REQUEST['sort'])) ? $_REQUEST['sort'] : '';
$request_sortodr = (isset($_REQUEST['sortodr']) && is_string($_REQUEST['sortodr'])) ? $_REQUEST['sortodr'] : '';
list($sort, $sortodr) = get_shop_item_sort($request_sort, $request_sortodr);
unset($request_sort, $request_sortodr);
define('_SHOP_', true);
@@ -4,7 +4,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<section id="bo_v_ans_form">
<?php
if($is_admin) // 관리자이면 답변등록
if($is_admin === 'super') // 최고관리자이면 답변등록
{
?>
<h2>답변등록</h2>
@@ -152,4 +152,4 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
<?php
}
?>
</section>
</section>
+3 -3
View File
@@ -29,7 +29,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
if($row['iq_secret']) {
$iq_subject .= ' <img src="'.G5_SHOP_SKIN_URL.'/img/icon_secret.gif" alt="비밀글">';
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
} else {
$iq_question = '비밀글로 보호된 문의입니다.';
@@ -85,7 +85,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
<?php } ?>
</div>
<?php if ($is_admin || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
<?php if ($is_admin === 'super' || ($row['mb_id'] == $member['mb_id'] && !$is_answer)) { ?>
<div class="sit_qa_cmd">
<a href="<?php echo $itemqa_form."&amp;iq_id={$row['iq_id']}&amp;w=u"; ?>" class="itemqa_form btn01" onclick="return false;">수정</a>
<a href="<?php echo $itemqa_formupdate."&amp;iq_id={$row['iq_id']}&amp;w=d&amp;hash={$hash}"; ?>" class="itemqa_delete btn01">삭제</a>
@@ -140,4 +140,4 @@ $(function(){
});
});
</script>
<!-- } 상품문의 목록 끝 -->
<!-- } 상품문의 목록 끝 -->
@@ -44,7 +44,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
if($row['iq_secret']) {
$iq_subject .= ' <i class="fa fa-lock" aria-hidden="true"></i>';
if($is_admin || $member['mb_id' ] == $row['mb_id']) {
if(is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) {
$iq_question = get_view_thumbnail(conv_content($row['iq_question'], 1), $thumbnail_width);
} else {
$iq_question = '비밀글로 보호된 문의입니다.';
@@ -141,4 +141,4 @@ $(function(){
});
});
</script>
<!-- } 전체 상품 사용후기 목록 끝 -->
<!-- } 전체 상품 사용후기 목록 끝 -->
+2 -2
View File
@@ -59,7 +59,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_SKIN_URL.'/style.css">',
<?php echo $is_content; // 사용후기 내용 ?>
</div>
<?php if ($is_admin || $row['mb_id'] == $member['mb_id']) { ?>
<?php if (is_shop_resource_owner_or_super_admin($row['mb_id'], $member['mb_id'], $is_admin)) { ?>
<div class="sit_use_cmd">
<a href="<?php echo $itemuse_form."&amp;is_id={$row['is_id']}&amp;w=u"; ?>" class="itemuse_form btn01" onclick="return false;">수정</a>
<a href="<?php echo $itemuse_formupdate."&amp;is_id={$row['is_id']}&amp;w=d&amp;hash={$hash}"; ?>" class="itemuse_delete btn01">삭제</a>
@@ -131,4 +131,4 @@ $(function(){
});
});
</script>
<!-- } 상품 사용후기 끝 -->
<!-- } 상품 사용후기 끝 -->