Cloudwiki

VIALinks

# VIA Links - Full-Stack URL Shortener

VIALinks는 Cloudflare Workers 기반의 링크/텍스트 공유 페이지입니다.
![VIALinks.png](https://wiki.vialinks.xyz/media/images/VIALinks.png)


## 핵심 특징

- **풀스택 에지 네트워킹**: 백엔드 로직과 스토리지 처리가 전 세계 Cloudflare 에지 노드에 분산되어 지연시간을 단축했습니다.
- **End-to-End 암호화 (E2EE)**: 비밀번호 설정 시 클라이언트 사이드에서 모든 데이터 암복호화가 이루어지며 완벽한 프라이버시를 보장합니다.
  - **KDF (키 파생 함수)**: 브라우저 상에서 `argon2id` (WebAssembly) 알고리즘을 사용해 사용자의 비밀번호와 랜덤 생성된 Salt(16 bytes)로부터 강력한 256-bit 암호화 키를 파생합니다. (파라미터: time 3, mem 256MB, parallelism 1) [* 저사양 기기를 전혀 배려하지 않은 설정입니다. 필요한 경우 소스코드를 직접 수정해 사용하세요.]
  - **암호화 알고리즘**: 파생된 키와 랜덤 IV(12 bytes)를 이용해 Web Crypto API의 **AES-GCM (256-bit)** 방식으로 데이터를 암호화합니다. 무결성 검증을 포함하여 조작을 방지합니다.
  - **Zero-Knowledge**: 원본 URL 및 텍스트 콘텐츠는 클라이언트에서 암호화된 `enc_data` 형태로 변환되며, 서버에는 원본 대신 더미 데이터와 암호화된 페이로드만 전송/저장되므로 서버 운영자조차 내용을 절대 확인할 수 없습니다.
- **실시간 데이터 분석**: **Workers Analytics Engine**을 통합하여 링크별 클릭 수 및 유입 데이터를 실시간으로 추적하고 관리자 대시보드에서 시각화합니다.
- **강력한 보안**: Cloudflare Turnstile이 악성 봇으로부터 링크 생성 및 관리자 페이지 로그인 시도를 방어하며, 동시에 Rate Limit도 담당합니다.
- **자동화된 수명 주기 관리**: 설정된 만료 시간에 맞춰 링크를 자동으로 관리하고 D1으로 아카이브합니다.
- **정적 페이지 호스팅**: 관리자 전용 기능으로 HTML 페이지를 키 기반 URL(`vialinks.xyz/주소`)로 발급하며, 본문은 **R2**에 저장됩니다. 활성 데이터는 KV, 비활성 데이터는 D1에 저장되는 기존 수명주기 구조를 그대로 따릅니다.
- **뉴모피즘 모바일 반응형 UI**: CSS 미디어 쿼리를 활용한 완벽한 모바일 반응형 레이아웃을 제공합니다. 고급스러운 화면 전환 애니메이션과 접근성 표준을 준수하는 뉴모피즘 디자인의 프론트엔드를 경험할 수 있습니다.
- **즉시 QR 코드 생성**: 링크 생성 시 즉시 QR 코드를 생성하여 오프라인 공유를 지원합니다.

## 기술 스택

- ** Backend**: Cloudflare Workers, Hono
- ** Database**: Cloudflare KV (Key-Value), Cloudflare D1 (SQLite)
- ** Analytics**: Cloudflare Workers Analytics Engine
- ** Storage**: Cloudflare R2
- ** Security**: Cloudflare Turnstile, Web Crypto API (AES-GCM 256-bit), Argon2id (KDF)
- ** Frontend**: HTML5, CSS3 (Neumorphism), JavaScript, Axios, SweetAlert2, Bootstrap