security: KVE-2026-2346 KCP 통보 검증과 입금·망취소 재처리 보강
테스트·운영 발신지와 결제 당시 상점·거래·계좌·금액을 대조하여 위조 입금 처리를 차단한다. 개인결제와 연결 주문의 중복 가산을 막고 통보 이력과 목표값으로 MyISAM/InnoDB 중간 실패를 재처리한다. DB 마이그레이션과 기존 거래 적용·복구 안내를 추가했다. 격리 HTTP/MySQL 검사 420개, PHP 문법 검사와 설치 스키마 대조가 통과했다. 실제 KCP 연동 확인과 배포·KISA 회신은 별도 진행이 필요하다.
This commit is contained in:
@@ -683,6 +683,7 @@ CREATE TABLE IF NOT EXISTS `g5_shop_order` (
|
||||
`od_test` tinyint(4) NOT NULL DEFAULT '0',
|
||||
`od_mobile` tinyint(4) NOT NULL DEFAULT '0',
|
||||
`od_pg` varchar(255) NOT NULL DEFAULT '',
|
||||
`od_kcp_site_cd` varchar(5) NOT NULL DEFAULT '',
|
||||
`od_tno` varchar(255) NOT NULL DEFAULT '',
|
||||
`od_app_no` varchar(20) NOT NULL DEFAULT '',
|
||||
`od_escrow` tinyint(4) NOT NULL DEFAULT '0',
|
||||
@@ -781,6 +782,7 @@ CREATE TABLE IF NOT EXISTS `g5_shop_personalpay` (
|
||||
`pp_use` TINYINT(4) NOT NULL DEFAULT '0',
|
||||
`pp_price` INT(11) NOT NULL DEFAULT '0',
|
||||
`pp_pg` varchar(255) NOT NULL DEFAULT '',
|
||||
`pp_kcp_site_cd` varchar(5) NOT NULL DEFAULT '',
|
||||
`pp_tno` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
`pp_app_no` VARCHAR(20) NOT NULL DEFAULT '',
|
||||
`pp_casseqno` VARCHAR(255) NOT NULL DEFAULT '',
|
||||
@@ -1037,3 +1039,19 @@ CREATE TABLE IF NOT EXISTS `g5_shop_inicis_pay_event` (
|
||||
KEY `pe_status` (`pe_status`),
|
||||
KEY `pe_created_at` (`pe_created_at`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
-- KCP 통보 처리 및 중간 실패 복구 이력
|
||||
CREATE TABLE `g5_shop_kcp_noti` (
|
||||
`kn_key` char(64) NOT NULL,
|
||||
`kn_trade` char(64) NOT NULL,
|
||||
`kn_noti_id` varchar(20) NOT NULL,
|
||||
`kn_op_cd` char(2) NOT NULL,
|
||||
`kn_payload` char(64) NOT NULL,
|
||||
`od_id` bigint(20) unsigned NOT NULL DEFAULT '0',
|
||||
`kn_plan` mediumtext NOT NULL,
|
||||
`kn_done` tinyint(4) NOT NULL DEFAULT '0',
|
||||
`kn_created_at` datetime NOT NULL,
|
||||
PRIMARY KEY (`kn_key`),
|
||||
KEY `kn_trade` (`kn_trade`),
|
||||
KEY `od_id` (`od_id`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
Reference in New Issue
Block a user