mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-05-15 20:38:06 +08:00
* feat: 添加浏览器指纹黑名单功能 - 前端集成 @fingerprintjs/fingerprintjs 库自动采集浏览器指纹 - 在所有 API 请求中通过 x-fingerprint header 传递指纹信息 - 将指纹黑名单集成到现有的 IP 黑名单功能中 - 支持精确匹配和正则表达式模式匹配指纹 - 在 App.vue mount 时预初始化指纹,避免首次请求延迟 - 使用 Vue 全局状态缓存指纹,避免重复生成 - 管理后台新增指纹黑名单配置,与 IP/ASN 黑名单统一管理 - 后端在限流 API 请求前检查指纹黑名单,返回 403 阻止访问 技术细节: - 指纹生成时间:50-300ms(一次性) - 缓存命中:<1ms - 请求开销:~20 字节/请求 - 支持最多 1000 条指纹黑名单规则 - 完善的错误处理,失败时不阻塞正常请求 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: 优化浏览器指纹初始化逻辑 - 移除 App.vue 中的预初始化,改为在首次 API 调用时自动初始化 - 移除不必要的 clearFingerprintCache 函数 - 初始化失败时返回特殊值 'ERROR' 而非空字符串 - 失败值会被缓存,避免重复尝试失败 优势: - 减少页面加载时的初始化开销 - 简化代码,去除不必要的函数 - 更清晰的错误标识 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
56 lines
2.2 KiB
JSON
56 lines
2.2 KiB
JSON
{
|
|
"name": "cloudflare_temp_email",
|
|
"version": "1.0.7",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build -m prod --emptyOutDir",
|
|
"build:release": "vite build -m example --emptyOutDir",
|
|
"build:pages": "vite build -m pages --emptyOutDir",
|
|
"build:pages:nopwa": "VITE_PWA_DISABLED=true vite build -m pages --emptyOutDir",
|
|
"build:telegram": "VITE_IS_TELEGRAM=true vite build -m prod --emptyOutDir",
|
|
"build:telegram:pages": "VITE_IS_TELEGRAM=true vite build -m pages --emptyOutDir",
|
|
"build:telegram:release": "VITE_IS_TELEGRAM=true vite build -m example --emptyOutDir",
|
|
"preview": "vite preview",
|
|
"deploy:telegram": "npm run build:telegram && wrangler pages deploy ./dist --branch production",
|
|
"deploy:actions:telegram": "npm run build:telegram && wrangler pages deploy ./dist",
|
|
"deploy:preview": "npm run build && wrangler pages deploy ./dist --branch preview",
|
|
"deploy": "npm run build && wrangler pages deploy ./dist --branch production",
|
|
"deploy:actions": "npm run build && wrangler pages deploy ./dist"
|
|
},
|
|
"dependencies": {
|
|
"@fingerprintjs/fingerprintjs": "^5.0.1",
|
|
"@simplewebauthn/browser": "10.0.0",
|
|
"@unhead/vue": "^1.11.20",
|
|
"@vueuse/core": "^12.8.2",
|
|
"@wangeditor/editor": "^5.1.23",
|
|
"@wangeditor/editor-for-vue": "^5.1.12",
|
|
"axios": "^1.13.1",
|
|
"jszip": "^3.10.1",
|
|
"mail-parser-wasm": "^0.2.1",
|
|
"naive-ui": "^2.43.1",
|
|
"postal-mime": "^2.6.0",
|
|
"vooks": "^0.2.12",
|
|
"vue": "^3.5.22",
|
|
"vue-clipboard3": "^2.0.0",
|
|
"vue-i18n": "^11.1.12",
|
|
"vue-router": "^4.6.3"
|
|
},
|
|
"devDependencies": {
|
|
"@vicons/fa": "^0.13.0",
|
|
"@vicons/material": "^0.13.0",
|
|
"@vitejs/plugin-vue": "^5.2.4",
|
|
"unplugin-auto-import": "^19.3.0",
|
|
"unplugin-vue-components": "^28.8.0",
|
|
"vite": "^6.4.1",
|
|
"vite-plugin-pwa": "^1.1.0",
|
|
"vite-plugin-top-level-await": "^1.6.0",
|
|
"vite-plugin-wasm": "^3.5.0",
|
|
"workbox-build": "^7.3.0",
|
|
"workbox-window": "^7.3.0",
|
|
"wrangler": "^4.45.3"
|
|
},
|
|
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
|
|
}
|