소피
소피2w ago

토스페이먼츠 연동 중 오류

퀵계좌이체, 신용체크카드, 토스페이, 페이코, 가상계좌 이 화면까지 뜨는데 각 단계를 클릭하면 콘솔에서 이 메시지가 뜨는데 어떻게 해야 하나요? Framing 'https://payment-gateway-sandbox.tosspayments.com/' violates the following Content Security Policy directive: "frame-src 'self' https://kauth.kakao.com https://api.tosspayments.com https://payment-widget.tosspayments.com". The request has been blocked.
16 Replies
토스페이먼츠 BOT
⏳ 잠시만 기다려주세요! 곧 답변드리겠습니다
오류 문의일 경우 아래 정보를 미리 전달해주시면, 빠른 답변에 도움이 됩니다.
- 주문번호(orderId) : - 문의 내용 :
(문제가 발생한 이미지나 전체 결제흐름 동영상을 첨부해주시면 빠른 분석을 받으실 수 있습니다.)
* 계약관련 내용은 1544-7772로 문의주세요. * 주말/공휴일에는 답변이 늦을 수 있어요.
Minsu Kim
Minsu Kim2w ago
Content Security Policy 설정을 하면 결제도 같이 차단되어 진행이 안됩니다. 해제 후 다시 시도 부탁드립니다. 감사합니다.
소피
소피OP2w ago
Content Security Policy 여기에 주소를 허용하면 될까요?
Kimoon Lee
Kimoon Lee2w ago
네 그런데 그러면 너무 많은 도메인을 허용하셔야 할겁니다. 가능하면 결제 창을 띄우는 페이지에서는 CSP 를 설정 안하시는게 좋습니다.
소피
소피OP2w ago
감사합니다 !
토스페이먼츠 BOT
❤️ 기술문의 경험이 어떠셨나요?!
간단히 코멘트 남겨주세요! 제품 발전에 큰 힘이 됩니다.
소피
소피OP2w ago
ㅠㅠ 그런데 CSP 설정 이런거만 하면 에러메시지가 떠요... 랜딩페이지에서부터
소피
소피OP2w ago
어떻게 해결하면 좋을까요
No description
Minsu Kim
Minsu Kim2w ago
localhost:8000/api/csrf-token, auth/status에서 왜 500나는지 보셔요
소피
소피OP2w ago
이 부분은 로컬 서버가 실행 안되어서 나타난거였어요 @app.after_request def set_security_headers(response): from flask import request current_path = request.path # ---- 1) 결제 checkout 페이지는 보안헤더 제외 ---- if "/service/payment/checkout" in current_path: response.headers['X-Frame-Options'] = 'ALLOWALL' response.headers.pop('Content-Security-Policy', None) return response
# --- 이하 기존 보안 헤더 --- response.headers['X-Content-Type-Options'] = 'nosniff' # MIME 타입 스니핑 방지 response.headers['X-Frame-Options'] = 'DENY' # 클릭재킹 방지 response.headers['X-XSS-Protection'] = '1; mode=block' # XSS 필터 활성화
소피
소피OP2w ago
Content Security Policy (Kakao SDK 및 이미지 허용) # CSP는 너무 엄격하면 앱이 작동하지 않을 수 있으므로 기본 설정만 적용 # 프로덕션 및 개발 환경 모두에 적용 (Kakao 로그인 작동을 위해) # Kakao SDK 및 이미지를 허용하도록 CSP 설정 csp_policy = ( "default-src 'self'; " "script-src 'self' 'unsafe-inline' 'unsafe-eval' https://developers.kakao.com https://t1.kakaocdn.net https://kauth.kakao.com https://js.tosspayments.com; " "script-src-elem 'self' 'unsafe-inline' https://developers.kakao.com https://t1.kakaocdn.net https://kauth.kakao.com https://*.tosspayments.com https://js.tosspayments.com; " "style-src 'self' 'unsafe-inline'; " "img-src 'self' data: https://k.kakaocdn.net https://*.kakaocdn.net https: https://*.tosspayments.com; " "connect-src 'self' https://kauth.kakao.com https://kapi.kakao.com https: http://localhost:* https://*.tosspayments.com ws: wss:; " "font-src 'self' data: https://fonts.gstatic.com; " "frame-src 'self' https://kauth.kakao.com https://payment-gateway-sandbox.tosspayments.com https://*.tosspayments.com;" ) response.headers['Content-Security-Policy'] = csp_policy
# Referrer Policy response.headers['Referrer-Policy'] = 'strict-origin-when-cross-origin'
return response
Kakao Developers
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
From An unknown user
From An unknown user
소피
소피OP2w ago
이렇게 CSP 인가를 해결하려고 했는데 아직도 해결이 안되어요 ㅠㅠ어떻게 해야할련지
Minsu Kim
Minsu Kim2w ago
CSP를 아예 빼세요
Kimoon Lee
Kimoon Lee2w ago
CSP 내용을 아예 빼시는게 좋을 것 같습니다.
소피
소피OP2w ago
@app.after_request def set_security_headers(response): from flask import request current_path = request.path # ---- 1) 결제 checkout 페이지는 보안헤더 제외 ---- if "/service/payment/checkout" in current_path: response.headers['X-Frame-Options'] = 'ALLOWALL' return response
# --- 이하 기존 보안 헤더 --- response.headers['X-Content-Type-Options'] = 'nosniff' # MIME 타입 스니핑 방지 response.headers['X-Frame-Options'] = 'DENY' # 클릭재킹 방지 response.headers['X-XSS-Protection'] = '1; mode=block' # XSS 필터 활성화
# HTTPS 강제 (프로덕션 환경에서만) if IS_PRODUCTION and USE_HTTPS: response.headers['Strict-Transport-Security'] = 'max-age=31536000; includeSubDomains'
# Referrer Policy response.headers['Referrer-Policy'] = 'strict-origin-when-cross-origin'
return response 이렇게 바꿨는데.. 아예 삭제해야할까요? 감사합니다. 해결했습니다! 감사합니다. 해결했습니다.
Kimoon Lee
Kimoon Lee2w ago
네 공유해주셔서 감사합니다.

Did you find this page helpful?