"네 프론트엔드는 언젠가 뚫린다고 가정해. 뚫렸을 때 피해가 경계 안에 갇히게 설계해."
웹뷰가 못 믿을 반쪽이야
네 프론트엔드는 웹뷰에서 돌고, 웹뷰는 웹 콘텐츠를 그려 — 딱 공격자가 노리는 표면이야. XSS 버그, innerHTML에 닿는 악성 문자열, 뚫린 npm 의존성 — 다 네가 안 짠 JavaScript를 앱 안에서 실행하게 끝날 수 있어. 프론트엔드가 전체 네이티브 접근을 가진(또는 allowlist 잠그는 걸 까먹은) 프레임워크에선, 그 주입된 스크립트가 기계 전체의 열쇠를 물려받아: 아무 파일이나 읽고, 아무 명령이나 실행. 그게 Tauri가 막으려 지어진 악몽이야.
기본 거부가 폭발 반경을 가둬
Tauri 2는 0에서 시작해: 웹뷰는 네가 노출한 특정 command만, 그것도 capability가 permission을 부여할 때만 그리고 부를 수 있어. 그래서 공격자가 네 프론트엔드에서 임의 JS를 돌려도, 네가 파일시스템이나 셸 접근을 — 기능이 필요한 딱 그만큼 scope해서 — 명시적으로 부여 안 했으면 ~/.ssh를 못 읽고 셸을 못 띄워. 침해가 네가 의도적으로 연 권한에 갇히지, OS 전체가 아냐.
최소 권한이 게임 전부야
부여하는 모든 permission은 네가 받아들인 공격 표면이야. 규율은 최소 권한이야: 기능이 돌게 하는 제일 좁은 권한을 부여하고, 제일 작은 경로나 도메인으로 scope하고, 다른 창엔 다른 capability를 줘(설정 창은 파일시스템 접근이 거의 필요 없어). Tauri 보안은 한 번 쌓는 벽이 아냐 — '아니오' 기본값에 대고 하는 작고 의도적인 '예'의 연속이야.