2.0 KiB
2.0 KiB
CSP script-src 'unsafe-inline' 패치 — 렌더러 v3 스크립트 미실행 근본 원인
- 시작: 2026-03-09 20:04 KST
- 종료: 2026-03-09 20:28 KST
- 상태: 🔧 미완료 (AG 재시작 후 /deep-inspect 검증 필요)
- Vikunja: #264 → 진행중
핵심 발견
Root cause: CSP script-src에 'unsafe-inline' 없음
이전 세션(#005~#006)에서 HTML 패치 + 체크섬 + CachedData 삭제 모두 정상이었으나 renderer v3 스크립트가 미실행되는 근본 원인 발견.
CSP 분석:
script-src 'self' 'unsafe-eval' blob: ← 'unsafe-inline' 없음!
style-src 'self' 'unsafe-inline' ← 스타일은 허용 (함정)
<script src="./x.js">→'self'로 허용되나vscode-file://가 커스텀 파일 서빙 차단<script>inline code</script>→'unsafe-inline'없어 CSP가 무조건 차단- 두 방법 모두 차단 → deadlock이었음
추가 검증
require-trusted-types-for 'script'→ static<script>태그에 영향 없음 (확인)- 스크립트 내
innerHTML/document.write/eval→ 0건 (Trusted Types 충돌 없음) connect-src에http://127.0.0.1:*→ Bridge HTTP 통신은 CSP 허용 범위
이전 세션 KI와의 관계
- KI
renderer_security_and_lifecycle.mdLine 28: "인라인 스크립트로 우회" → 해결책으로 기록 - 그러나 인라인도 CSP가 차단한다는 분석이 누락 → 이번에 최초 발견
수정 내역
| 파일 | 변경 |
|---|---|
extension/src/extension.ts |
setupApprovalObserver()에 CSP 'unsafe-inline' 자동 패치 로직 추가 |
.agents/references/known-issues.md |
CSP script-src 이슈 + 핵심 전제에 CSP 패치 필수 추가 |
| 양쪽 HTML (수동) | 'unsafe-inline' 추가 + 체크섬 업데이트 + CachedData 삭제 |
다음 단계 (다음 세션)
- AG 완전 재시작
curl.exe http://127.0.0.1:34332/deep-inspect→ 렌더러 응답 확인- 응답 시 webview iframe 접근성 분석 → E2E 승인 테스트