Files
networkSetup/.claude/rules/security.md
T
jychoi4andClaude Opus 5.5 905e6d4eaa chore: add Claude Code guidelines, rules and skills
- CLAUDE.md: product principles, crate layering, common commands, commits.
- .claude/rules: common, Rust, frontend, Tauri IPC, docs and security rules.
- .claude/skills: check, add-tauri-command, project-model-change,
  change-record, msix-integration-test, backlog-status.

Refs #16

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-11 11:09:05 +09:00

2.4 KiB

보안 · 비밀정보 규칙

모든 파일에 적용한다.

커밋 금지 목록

.gitignore에 있는 항목을 예외 없이 지킨다: .mcp.json(Gitea 토큰 포함), .env*, *.pfx, *.p12, *.key, *.isproj.local.json, *.bak, output/samples/, node_modules/, target/. 이 파일들의 내용을 문서·주석·테스트·로그에 복사하지도 않는다.

src/.work/는 로컬 작업 폴더다(미추적). 그 안의 스크립트·토큰·커밋 메타데이터를 소스나 문서에 인용하지 않는다.

시스템 변경 금지

제작기와 테스트는 다음을 절대 자동 수행하지 않는다. 필요한 경우 사용자가 직접 실행할 스크립트와 안내를 출력한다.

  • 빌드 PC의 실제 레지스트리 수정(offreg.dll로 오프라인 hive만 생성)
  • 인증서 신뢰 저장소 등록(LocalMachine\TrustedPeople), 인증서 개인 키 내보내기
  • MSIX 설치·제거, Windows 개발자 모드 변경
  • Windows SDK·인증서·런타임 자동 설치
  • 사용자 프로젝트 파일의 자동 변환·일괄 수정

도구 실행

  • 허용 도구는 절대 경로의 makeappx.exe, signtool.exe, 저장소 내 PowerShell 서명 스크립트. 파일 이름을 대소문자 무시로 검사하고 실행 전후 SHA-256을 계획 값과 비교한다.
  • 인자는 배열로 전달한다. 셸(cmd /c, powershell -Command "<문자열 결합>")로 사용자 입력을 넘기지 않는다.
  • 자식 프로세스는 Job Object에 붙여 취소·타임아웃 시 함께 종료한다.

경로

  • 사용자 입력 경로는 safe_relative로 검사한다: .., 절대 경로, 예약 장치 이름(CON, COM1), 제어 문자, \:<>"|?* 거부.
  • reparse point(심볼릭 링크·junction)는 reject_links로 읽기·쓰기 모두 거부한다.
  • 소스 폴더가 .work, releases를 포함하거나 그 아래면 거부한다(출력 재수집 방지).
  • 작업 로그와 검증 JSON에는 로컬 절대 경로가 남는다. 외부 공유 전에 사용자에게 알린다.

프런트엔드

  • CSP default-src 'self' 유지. 외부 리소스 로드 금지.
  • 모든 동적 HTML은 이스케이프. 이벤트는 addEventListener.
  • Tauri 명령은 ID·선택지만 받고 경로를 받지 않는다. 새 명령마다 capabilities/main.json에 개별 허용을 추가하고 와일드카드 권한을 쓰지 않는다.