Files
Gnuboard7/plugins/_bundled/sirsoft-pay_nhnkcp/docs
HeuJung 1e89335258 fix(core,extensions): 동적 스크립트 주입 경로 전부에 출처 게이트 적용
레이아웃 scripts[] 에만 있던 원격 스크립트 차단 게이트가 다른 주입 경로에는
없어, 저장측(SafeLayoutExpressions·NoExternalUrls)이 외부 URL 저장을 422 로
막아도 런타임 디스패치 한 번으로 임의 원격 코드가 로드됐다. 저장 검증이
통째로 무의미해지는 상태였고 오류도 경고도 남지 않았다.

판정식을 support/scriptSrcPolicy.ts 로 분리해 런타임 SSoT 를 하나로 두고,
loadScript 액션 · 확장 핸들러 재로드 · 편집기 프리뷰 · 편집기 자산 매니페스트 ·
G7Core.asset.loadScript · PG 플러그인 SDK 주입이 모두 그것을 경유하게 했다.
사본을 두지 않은 이유는 차집합이 그대로 우회로가 되기 때문이다.

- 게이트는 캐시 검사보다 앞에 둔다 (뒤에 두면 이미 로드된 미신뢰 스크립트가
 캐시 히트로 통과한다)
- NoExternalUrls 순회를 9키로 확대 — 번들 레이아웃 601개 사전 스캔으로
 정당한 외부 URL 0건을 확인한 뒤 넓혔다 (저장 회귀 없음)
- callExternal 은 생성자를 참조 동일성으로 거부하고(별칭 전역 포함),
 프로토타입 경로 세그먼트를 읽기·매핑 키 양쪽에서 차단한다
- PG SDK 는 서비스 SDK 라 자체 호스팅이 불가능하므로 manifest 선언 +
 주입 직전 호스트 확인이 게이트다. tosspayments SDK URL 은 확장자가 없어
 정적 검사에 걸리지 않아 그 런타임 확인이 유일한 게이트다
- 함께 드러난 결함: 동시 loadScript 가 로드 전에 완료 처리되던 문제,
 확장 재로드에서 script 기존재가 CSS 까지 건너뛰던 문제, loadCSS 의
 in-flight 미공유
2026-09-02 21:43:13 +09:00
..

NHN KCP 개발자 문서

plugins/_bundled/sirsoft-pay_nhnkcp · 플러그인

훅 수: 8 · 구독 훅 수: 9 · 라우트 수: 16 · 모델 수: 0 · 테이블 수: 0 · 마이그레이션 수: 0 · 레이아웃 수: 1 · 핸들러 수: 3

문서 목차

문서 내용
architecture.md 설계 의도·계층 지도·디렉토리 맵
extension-points.md 발행/구독 훅·미들웨어·채널·스케줄
data-model.md 모델·소유 테이블·마이그레이션·Enum
settings.md 설정 스키마·권한·메뉴·라우트·의존 관계
frontend.md 레이아웃·액션 핸들러·전역 진입점·에셋
editor-spec.md 레이아웃 편집기에 선언한 팔레트·컨트롤·샘플 데이터
api/ API 레퍼런스
../AGENTS.md 에이전트·확장개발자 진입점
../README.md 사람(도입검토자·운영자) 진입점