Files
Gnuboard7/plugins/_bundled/sirsoft-tosspayments/resources/lang/ko.json
T
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

100 lines
5.7 KiB
JSON

{
"editor": {
"data_source": {
"settings": "결제 설정"
}
},
"plugin_name": "토스페이먼츠",
"plugin_description": "토스페이먼츠 결제 게이트웨이 (통합결제창 연동)",
"settings": {
"title": "토스페이먼츠 설정",
"description": "토스페이먼츠 API 키를 설정합니다.",
"test_mode": "테스트 모드",
"test_mode_hint": "테스트 모드에서는 실제 결제가 발생하지 않습니다.",
"test_client_key": "테스트 클라이언트 키",
"test_client_key_hint": "개발자센터 > API 개별 연동 키에서 확인",
"test_secret_key": "테스트 시크릿 키",
"test_secret_key_hint": "외부에 노출되지 않도록 주의하세요.",
"live_client_key": "라이브 클라이언트 키",
"live_secret_key": "라이브 시크릿 키",
"live_secret_key_hint": "외부에 노출되지 않도록 주의하세요.",
"section_test_keys": "테스트 API 키",
"section_live_keys": "라이브 API 키",
"section_redirect": "리다이렉트 설정",
"redirect_success_url": "결제 성공 리다이렉트 URL",
"redirect_success_url_hint": "{shopBase}는 상점 주소 설정을 따라 자동으로 채워집니다. 전체 URL(https://...)을 직접 넣어도 됩니다. {orderId}는 실제 주문번호로 자동 치환됩니다.",
"redirect_fail_url": "결제 실패 리다이렉트 URL",
"redirect_fail_url_hint": "{shopBase}는 상점 주소 설정을 따라 자동으로 채워집니다. 전체 URL 을 직접 넣어도 됩니다. 오류 정보(error, message, orderId)는 쿼리 파라미터로 자동 추가됩니다.",
"save": "저장",
"saved": "설정이 저장되었습니다.",
"section_payment_methods": "결제 방식",
"order_sheet_mode": "주문서형 결제",
"order_sheet_mode_hint": "켜면 체크아웃에서 결제수단을 직접 선택합니다. 끄면 토스 통합결제창(카드) 하나로 처리됩니다.",
"enabled_methods": "노출할 결제수단",
"enabled_methods_hint": "주문서형 결제일 때 체크아웃에 노출할 결제수단을 선택합니다.",
"method_card": "카드",
"method_virtual_account": "가상계좌",
"method_transfer": "계좌이체",
"method_mobile_phone": "휴대폰",
"method_tosspay": "토스페이",
"method_kakaopay": "카카오페이",
"method_naverpay": "네이버페이",
"method_payco": "페이코",
"method_samsungpay": "삼성페이",
"section_virtual_account": "가상계좌",
"vbank_valid_hours": "입금기한(시간)",
"vbank_valid_hours_hint": "가상계좌 발급 후 입금 가능한 시간입니다. 최대 2160시간(90일).",
"vbank_cash_receipt_type": "현금영수증 자동발급 유형",
"vbank_cash_receipt_type_hint": "가상계좌 발급 시 토스가 자동 발급할 현금영수증 유형입니다.",
"vbank_cash_receipt_none": "발급 안 함",
"vbank_cash_receipt_income": "소득공제",
"vbank_cash_receipt_expense": "지출증빙",
"use_escrow": "에스크로 사용",
"use_escrow_hint": "가상계좌·계좌이체 결제에만 적용됩니다.",
"use_escrow_off": "사용 안 함",
"use_escrow_on": "강제 사용",
"use_escrow_buyer_choice": "구매자 선택",
"escrow_no_partial_cancel_notice": "에스크로 주문은 부분취소가 불가합니다. 전체 취소만 가능합니다.",
"escrow_shipping_info_notice": "배송정보는 토스 상점관리자에서 등록하세요.",
"escrow_shipping_info_link": "바로가기 ↗",
"webhook_secret_verify": "웹훅 secret 검증",
"webhook_secret_verify_hint": "가상계좌 입금통보 웹훅의 secret 을 결제 승인 응답과 대조해 위조 요청을 차단합니다.",
"webhook_url_label": "가상계좌 입금통보 웹훅 URL",
"webhook_url_hint": "위 경로 앞에 상점 전체 도메인(https://내도메인)을 붙여, 토스 개발자센터 > 웹훅 메뉴에 DEPOSIT_CALLBACK 이벤트로 등록하세요.",
"webhook_url_copy": "복사",
"webhook_url_copied": "웹훅 URL 이 복사되었습니다."
},
"payment_error_title": "결제 오류",
"payment_cancel_title": "결제 취소",
"payment_cancelled_message": "결제가 취소되었습니다. 다시 결제를 시도하시거나 다른 결제 수단을 선택해 주세요.",
"errors": {
"confirm_failed": "결제 승인에 실패했습니다.",
"amount_mismatch": "결제 금액이 일치하지 않습니다.",
"order_not_found": "주문을 찾을 수 없습니다.",
"payment_failed": "결제에 실패했습니다.",
"non_krw_method": "이 결제수단은 원화(KRW) 결제에만 사용할 수 있습니다."
},
"user": {
"payment_type_label": "결제 유형",
"escrow_yes": "에스크로",
"receipt_label": "영수증",
"receipt_view": "영수증 보기",
"cash_receipt_label": "현금영수증",
"cash_receipt_view": "현금영수증 보기"
},
"admin": {
"payment_panel_title": "토스페이먼츠 결제 정보",
"escrow_label": "결제 유형",
"escrow_yes": "에스크로",
"vbank_label": "가상계좌",
"vbank_due_label": "입금 기한",
"receipt_label": "영수증",
"receipt_view": "영수증 보기"
},
"payment": {
"error": {
"sdk_url_untrusted": "결제 모듈 주소가 올바르지 않아 결제를 진행할 수 없습니다. 관리자에게 문의해 주세요."
}
}
}