[security]현금영수증 발급 페이지 IDOR 취약점 수정
This commit is contained in:
@@ -17,12 +17,19 @@ if (strlen($iv) !== 16){
|
||||
*/
|
||||
|
||||
$companynumber = isset($_REQUEST['companynumber']) ? clean_xss_tags($_REQUEST['companynumber'], 1, 1) : '';
|
||||
$od_id = isset($_REQUEST['od_id']) ? safe_replace_regex($_REQUEST['od_id'], 'od_id') : '';
|
||||
$tx = isset($_REQUEST['tx']) ? clean_xss_tags($_REQUEST['tx'], 1, 1) : '';
|
||||
|
||||
if($tx == 'personalpay') {
|
||||
$od = sql_fetch(" select * from {$g5['g5_shop_personalpay_table']} where pp_id = '$od_id' ");
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">개인결제 내역이 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 개인결제거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'personalpay')) {
|
||||
alert('해당 개인결제 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
if($od['pp_cash'] == 1)
|
||||
alert('이미 등록된 현금영수증 입니다.');
|
||||
|
||||
@@ -37,6 +44,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">주문서가 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 주문이거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'order')) {
|
||||
alert('해당 주문 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
if($od['od_cash'] == 1)
|
||||
alert('이미 등록된 현금영수증 입니다.');
|
||||
|
||||
|
||||
@@ -11,6 +11,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">개인결제 내역이 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 개인결제거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'personalpay')) {
|
||||
alert('해당 개인결제 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
$od_tno = $od['pp_tno'];
|
||||
$goods_name = $od['pp_name'].'님 개인결제';
|
||||
$settle_case = $od['pp_settle_case'];
|
||||
@@ -21,6 +26,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">주문서가 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 주문이거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'order')) {
|
||||
alert('해당 주문 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
$od_tno = $od['od_tno'];
|
||||
$goods = get_goods($od['od_id']);
|
||||
$goods_name = $goods['full_name'];
|
||||
|
||||
@@ -8,11 +8,19 @@ include_once(G5_SHOP_PATH.'/settle_nicepay.inc.php');
|
||||
*
|
||||
*/
|
||||
|
||||
$od_id = isset($_REQUEST['od_id']) ? safe_replace_regex($_REQUEST['od_id'], 'od_id') : '';
|
||||
$tx = isset($_REQUEST['tx']) ? clean_xss_tags($_REQUEST['tx'], 1, 1) : '';
|
||||
|
||||
if($tx == 'personalpay') {
|
||||
$od = sql_fetch(" select * from {$g5['g5_shop_personalpay_table']} where pp_id = '$od_id' ");
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">개인결제 내역이 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 개인결제거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'personalpay')) {
|
||||
alert('해당 개인결제 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
if($od['pp_cash'] == 1)
|
||||
alert('이미 등록된 현금영수증 입니다.');
|
||||
|
||||
@@ -27,6 +35,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">주문서가 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 주문이거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'order')) {
|
||||
alert('해당 주문 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
if($od['od_cash'] == 1)
|
||||
alert('이미 등록된 현금영수증 입니다.');
|
||||
|
||||
|
||||
@@ -16,6 +16,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">개인결제 내역이 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 개인결제거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'personalpay')) {
|
||||
alert('해당 개인결제 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
$goods_name = $od['pp_name'].'님 개인결제';
|
||||
$amt_tot = (int)$od['pp_receipt_price'];
|
||||
$dir = $od['pp_pg'];
|
||||
@@ -32,6 +37,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">주문서가 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 주문이거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'order')) {
|
||||
alert('해당 주문 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
if ( ! $is_admin && ! (shop_is_taxsave($od)) ){
|
||||
die('해당 주문은 현금영수증을 발급할수 없습니다.');
|
||||
}
|
||||
|
||||
@@ -10,6 +10,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">개인결제 내역이 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 개인결제거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'personalpay')) {
|
||||
alert('해당 개인결제 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
$od_tno = $od['pp_tno'];
|
||||
$goods_name = $od['pp_name'].'님 개인결제';
|
||||
$settle_case = $od['pp_settle_case'];
|
||||
@@ -23,6 +28,11 @@ if($tx == 'personalpay') {
|
||||
if (!$od)
|
||||
die('<p id="scash_empty">주문서가 존재하지 않습니다.</p>');
|
||||
|
||||
// IDOR 방지: 본인 주문이거나 정당한 세션 uid 보유 시에만 허용
|
||||
if (function_exists('is_shop_order_owner') && !is_shop_order_owner($od, 'order')) {
|
||||
alert('해당 주문 정보에 접근 권한이 없습니다.', G5_SHOP_URL);
|
||||
}
|
||||
|
||||
$od_tno = $od['od_tno'];
|
||||
$goods = get_goods($od['od_id']);
|
||||
$goods_name = $goods['full_name'];
|
||||
|
||||
Reference in New Issue
Block a user