Skip to content

Releases: AntoninHY/sharepwd

v1.2.2

Choose a tag to compare

@AntoninHY AntoninHY released this 10 Mar 14:35
4528252

Changes

Bug fix

  • Chunked file upload: file uploads (PDF, etc.) were failing for files exceeding 512KB due to body size limit. Migrated frontend to use the existing chunked upload API with backward-compatible download flow (#15)

Chore

  • Nginx analytics hardening: added rate limiting (5r/m) on Umami login endpoint, split analytics proxy locations, removed unused htpasswd references (#16)

v1.2.1 — Security Hardening

Choose a tag to compare

@AntoninHY AntoninHY released this 06 Mar 10:17
c844426

Security Fixes

Addresses all 6 findings from the security review (by PE Errard)

Critical

  • IP spoofing fix: extractIP now relies on r.RemoteAddr set by chi RealIP middleware instead of naively parsing X-Forwarded-For (#13)
  • DEFENSE_STRICT_MODE defaults to true: anti-bot layers (PoW, behavioral, env fingerprint) now block by default (#13)

High

  • Auth on chunk downloads: DownloadChunk requires a valid secret access token, preventing unauthorized chunk exfiltration (#13)
  • HMAC-signed proofs: behavioral and env fingerprint proofs are signed with HMAC-SHA256 using an ephemeral nonce-bound key, preventing forgery (#14)

Medium

  • CSP hardened: removed unsafe-eval from script-src, added worker-src 'self' for the PoW Web Worker (#14)
  • Redis nonce store: replaced in-memory nonce map with Redis-backed store using atomic Lua scripts. Survives restarts, supports multi-instance deployments, auto-expires via TTL (#14)

Infrastructure

  • Added Redis 7 Alpine service
  • New REDIS_URL config (redis://redis:6379 default)

Frontend

  • PoW is now properly awaited before sending reveal requests
  • Client-side HMAC signing of defense proofs via Web Crypto API
  • Grace period delay ensures server-side timing check is always met

v1.2.0

Choose a tag to compare

@AntoninHY AntoninHY released this 04 Mar 11:58

What's New

Features

  • Passphrase generator — generate strong passphrases with diceware (7 words) or random characters (20 chars) directly in the create forms
  • Eye toggle — show/hide passphrase field for both text and file forms
  • GitHub link — repo link in footer

Fixes

  • Burn after reading disables max views selector (contradictory settings)
  • File upload dropzone — "Contact us" link no longer triggers file picker
  • Passphrase hint — reassuring wording for both text and file forms

Infrastructure

  • Dockerfile build args — self-hosters can override domain URLs without modifying Dockerfile
  • Copyright headers on all source files (Go, TypeScript, Dockerfiles, YAML, SQL, CSS, nginx, etc.)
  • Author cleanup — unified commit authorship across all history