Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
private-landing — 🔐 올바르게 구축하여 인증을 배우세요. Cloudflare Workers를 위한 확장 가능하고 표준을 준수하는 참조 구현체: Hono, Turso, PBKDF2 및 JWT 이중 토큰 세션. | Kitploit
도구/GitHubGitHub/vhscom/private-landing
Authentication & AuthorizationIdentity ManagementWeb SecurityCryptographyCloud SecurityDevSecOpsIdentity & Access Management (IAM)AuthenticationLearning & EducationAPI SecurityLabs & Practice
8033개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
vhscom/private-landing

private-landing

🔐 올바르게 구축하여 인증을 배우세요. Cloudflare Workers를 위한 확장 가능하고 표준을 준수하는 참조 구현체: Hono, Turso, PBKDF2 및 JWT 이중 토큰 세션.

저장소 보기웹사이트

Private Landing

인증을 올바르게 구축하며 배우세요.

License TypeScript Cloudflare Workers
CI codecov

라이브 데모 · 위협 모델 · 인증 흐름 · ADR

데모 참고: 로그인 엔드포인트는 적응형 PoW(Proof of Work) 챌린지로 보호됩니다. 반복된 실패는 점점 더 높은 작업 증명 난이도를 요구합니다. 캐시 기반 속도 제한이 구현 및 테스트되었지만 현재 라이브 데모에서는 활성화되어 있지 않습니다. 활성화하려면 app.ts에서 createCacheClient를 활성화하세요.


Cloudflare Workers용으로 처음부터 구축한 인증 참조 구현입니다. PBKDF2 비밀번호 해싱, JWT 이중 토큰 세션, 상수 시간 비교, 슬라이딩 만료, 그리고 제거 가능한 관찰 가능성 플러그인을 포함하며, Hono, Turso(선택적 Valkey/Redis 캐싱 포함), 그리고 엄격한 TypeScript로 연결됩니다.

모든 설계 결정은 표준을 기반으로 합니다: 자격 증명에 NIST SP 800-63B, 키 유도에 NIST SP 800-132, 검증에 OWASP ASVS, JWT 모범 사례에 RFC 8725를 따릅니다.

제품을 출시하시나요? 대신 Better Auth 를 사용하세요. OAuth, 패스키, MFA, 속도 제한 등을 활성화된 플러그인 생태계와 함께 기본적으로 제공합니다. 이 저장소는 인증이 어떻게 작동하는지 가르쳐주기 위해 존재하며, 프로덕션 라이브러리를 대체하기 위한 것이 아닙니다.

이 저장소가 필요한 이유

  • 문서뿐만 아니라 코드를 읽으세요 — 모든 보안 속성(타이밍 안전 거부, 세션 연결된 폐기, 알고리즘 고정)이 설명될 뿐만 아니라 구현되고 테스트되었습니다.
  • NIST + OWASP + RFC 참조 전반에 걸쳐 — 각 결정 뒤에 있는 이유를 배울 수 있습니다.
  • 630개 이상의 테스트 — 공격 벡터 스위트(토큰 변조, 알고리즘 혼동, 유니코드 경계 사례) 포함
  • 관찰 가능성 플러그인 — 구조화된 감사 로깅, 적응형 PoW 챌린지, 에이전트 인증된 ops API, 그리고 WebSocket 이벤트 스트리밍 — Hono 미들웨어를 통해 연결되며, 핵심 인증을 수정하지 않고 설치/제거 가능
  • 엣지용으로 구축됨 — Cloudflare Workers에서 Web Crypto API로 실행되며, Node.js 종속성 없음
  • Apache-2.0 — 포크하여 가르치고, 배우고, 활용하세요

내부 내용

프로덕션 다음 단계

이 프로젝트는 교육적 범위를 벗어나는 기능을 의도적으로 생략합니다. 이 코드를 프로덕션으로 확장하거나(프로덕션 인증 시스템이 필요한지 평가하는 경우) 아래 표는 우선순위 계층별로 격차를 정리합니다.

대부분의 실제 프로젝트에서는 직접 구축하는 대신 Better Auth를 사용하세요.

중요 — 실제 사용자 전에 추가

기능중요한 이유표준 / 참조
유출된 비밀번호 확인공개적으로 알려진 유출 데이터에 포함된 비밀번호 사용 방지NIST SP 800-63B §5.1.1.2, HIBP API

높은 우선순위 — 프로덕션 신뢰

중간 우선순위 — 제품 확장 시

고급 — 엔터프라이즈 / 높은 보안

이 모든 것은 Better Auth를 사용하는 훌륭한 이유입니다.

저장소 구조

root@kitploit:~
.
├── apps/
│   └── cloudflare-workers/    # 예제 Worker + Hono 라우트
├── packages/
│   ├── core/                  # 인증 서비스, 미들웨어, 암호화 유틸리티
│   ├── infrastructure/        # DB 클라이언트 + 유틸리티
│   ├── observability/         # 이벤트 발생, 적응형 챌린지, ops API (제거 가능 플러그인)
│   ├── schemas/               # Zod 스키마
│   └── types/                 # 공유 TypeScript 타입
├── tools/
│   └── cli/                   # plctl — /ops 표면용 Go TUI
└── docs/
    ├── adr/                   # 아키텍처 결정 기록
    └── audits/                # 보안 감사

시작하기

root@kitploit:~
git clone https://github.com/vhscom/private-landing.git
cd private-landing
bun install
bun run dev

끝입니다. 계정, API 키, .env 파일이 필요 없습니다. 개발 서버는 로컬 SQLite 데이터베이스와 생성된 비밀로 시작됩니다. http://localhost:8788을 열어 계정을 등록하고 인증 흐름을 탐색하세요.

Turso 계정이 있나요? apps/cloudflare-workers/에 .dev.vars 파일을 넣고(.dev.vars.example 참조) bun run dev를 실행하면 자동으로 원격 데이터베이스와 함께 wrangler를 사용합니다. 로컬 서버를 강제로 사용하려면 bun run dev:local을 사용하세요.

테스트 및 배포 지침은 CONTRIBUTING.md를 참조하세요.

AI와 함께 사용하기

이 저장소에는 AI 어시스턴트를 위한 컨텍스트를 제공하는 CLAUDE.md 파일이 포함되어 있습니다. Claude Code, Cursor 또는 유사한 AI 기반 개발 도구를 사용할 때:

  1. AI는 프로젝트 컨텍스트를 위해 자동으로 CLAUDE.md를 읽습니다.
  2. docs/adr/의 아키텍처 결정 기록은 설계 선택을 설명합니다.
  3. docs/audits/의 보안 감사는 보안 상태를 문서화합니다.
  4. 테스트는 예상 동작과 경계 사례를 보여줍니다.

코드베이스는 명확한 모듈 경계, 포괄적인 타입, 설명적인 명명 규칙을 통해 AI가 읽을 수 있도록 설계되었습니다.

라이선스

Apache-2.0

도구 다운로드
계층기능
비밀번호 저장128비트 솔트, 무결성 다이제스트, 버전 추적을 포함한 PBKDF2-SHA384 (password-service.ts)
세션 관리기기 추적, 슬라이딩 만료, 사용자당 최대 3개 세션 제한이 있는 서버 측 세션; Valkey/Redis를 통한 선택적 캐시 기반 세션 (session-service.ts, cached-session-service.ts)
비밀번호 변경현재 비밀번호 재확인, 전체 PBKDF2 재해싱, 모든 세션의 원자적 폐기 (account-service.ts, ADR-004)
JWT 이중 토큰 패턴15분 액세스 + 7일 리프레시 토큰, 폐기를 위해 세션에 연결 (token-service.ts)
인증 미들웨어자동 리프레시 흐름, 명시적 HS256 고정, typ 클레임 검증 (require-auth.ts)
보안 쿠키HttpOnly, Secure, SameSite=Strict, Path=/ (cookie.ts)
보안 헤더HSTS, CSP, CORP/COEP/COOP, Permissions-Policy, 지문 제거 (security.ts)
입력 검증NIST 준수 비밀번호 정책(길이만, 복잡성 규칙 없음)을 포함한 Zod 스키마
속도 제한무차별 대입 및 자격 증명 스터핑 공격에 대한 고정 윈도우 스로틀링: 공개 인증 경로(예: 로그인)에서는 IP 기반, 보호된 작업에서는 사용자 기반; 하드 잠금 없음(NIST 정렬) (ADR-006)
관찰 가능성 플러그인구조화된 보안 이벤트, 적응형 PoW 챌린지, 에이전트 인증된 /ops API — 미들웨어를 통해 연결되며, 하나의 패키지를 삭제하여 제거 가능 (ADR-008)
CLI 도구/ops 표면을 통해 이벤트 조회, 세션 관리, 에이전트 자격 증명 프로비저닝을 위한 Go TUI (plctl) (tools/cli/)
공격 벡터 테스트JWT 변조, 알고리즘 혼동, 타입 혼동, 유니코드 경계 사례, 정보 공개 검사
기능중요한 이유표준 / 참조
CSRF 보호 (SameSite 완화 시)현재 SameSite=Strict가 CSRF를 방지함; UX를 위해 Lax로 변경하는 경우 명시적 토큰 필요OWASP CSRF 치트 시트
리프레시 토큰 로테이션토큰 도용 탐지 — 교체된 리프레시 토큰이 재사용되면 전체 세션 패밀리 폐기RFC 6819 §5.2.2.3
JWT의 aud 클레임동일한 비밀을 공유하는 다른 서비스에서 토큰이 수락되는 것을 방지RFC 7519 §4.1.3, RFC 8725 §3.9
인라인 스크립트용 CSP 난스현재 CSP는 'unsafe-inline' 사용; 난스는 인라인 스크립트 XSS 벡터 제거MDN CSP script-src
기능중요한 이유표준 / 참조
TOTP 다중 요소 인증고가치 계정에 두 번째 요소 추가RFC 6238, NIST SP 800-63B §5.1.4
WebAuthn / 패스키플랫폼 인증기를 사용한 피싱 방지 인증WebAuthn 레벨 2
OAuth / 소셜 로그인마찰 감소, 비밀번호 피로 방지RFC 6749
매직 링크 / OTP저위험 흐름을 위한 비밀번호 없는 옵션NIST SP 800-63B §5.1.3
세션 분석기기 추적, 동시 세션 가시성, 이상 탐지OWASP 세션 관리 치트 시트
서명 키 로테이션모든 세션을 무효화하지 않고 주기적 비밀 로테이션 가능RFC 7517 (JWK)
기능중요한 이유표준 / 참조
DPoP / 토큰 바인딩토큰을 클라이언트의 TLS 연결에 바인딩하여 유출 재생 방지RFC 9449 (DPoP)
멀티 테넌시테넌트별로 사용자 풀, 비밀, 정책 격리애플리케이션 특정
지오펜싱 / IP 평판예상치 못한 지역이나 알려진 나쁜 IP에서의 로그인 차단OWASP ASVS v5.0 §6.3.5
적응형 인증위험 신호(기기, 위치, 행동)에 따라 인증 요구 사항 단계적 상향NIST SP 800-63B §6
PBKDF2 반복 업그레이드 또는 Argon2idOWASP는 210,000번의 PBKDF2-SHA512 반복을 권장(Cloudflare는 10만으로 제한); Argon2id는 메모리 하드OWASP 비밀번호 저장 치트 시트