现代链接缩短器
该项目是一个可扩展且功能丰富的链路缩短器,它使用.NET 8中的现代技术构建。它采用分层体系结构来确保可维护性,可检验性和可伸缩性。该应用程序由ASP.NET核心Web API组成,作为后端和大型WebAssembly前端。它利用广泛的技术和设计模式来提供安全,高效和用户友好的体验。
关键功能
- 安全链接缩短:利用SHA-256 HASHING与碰撞管理
- 自定义链接支持:创建个性化的短链接(高级功能)
- 货币化:通过广告产生收入。
- 支持货币化的重定向和普通重定向
- 实时统计:通过SignalR实时跟踪和更新
- 批处理处理:支持散装链接缩短操作
- 高级分析:基于IP地址和用户代理的详细见解,包括地理信息和设备信息。
- 安全身份验证:基于XSS&CSRF保护的基于JWT的验证。
- 费率限制:基于端点灵敏度的智能请求节流
- 单击链接管理:
- 切换链路激活。
- 切换链接货币化。
- 自定义碰撞处理
- 非数字哈希保证
?安全功能
- 仅HTTP仅基于HTTP的JWT和刷新令牌存储。
- CSRF通过令牌预防保护。
- 使用BCRYPT密码哈希。
- 费率限制机制。
- XSS攻击预防措施。
- Cloudflare旋转门集成页面以防止机器人。
- IP和用户代理使用外部受信任服务处理。
- 用户秘密使用用户秘密,以防止API键泄漏或其他重要信息。
- 基于角色的授权
- 严格的类型安全数据验证
技术堆栈
后端(.NET 8)
- 建筑:分层体系结构
- API :ASP.NET核心Web API
- 身份验证:带安全曲奇存储的JWT
- 数据库:PostgreSQL(Dockerized)
- 缓存和消息经纪人:redis(dockerized)
- ORM :实体框架核心
- 实时通信:Signalr
- 付款处理:Zibalclient
前端(.NET 8)
- 技术:大火WebAssembly
- CSS框架:Bootstrap
- 使用自定义HTTP处理程序进行身份验证来验证请求
- 授权:使用.NET授权状态提供商
- 实时通信:信号客户端
- localstorage和Notification :命中
- 图标:Blazorise字体很棒的图标
- 验证码:大发旋转门
关键软件包
- 信号:进行实时通信
- DTO映射的汽车应用程序
- 供求验证的荧光验证
- 基于IP分析的IPINFO
- NPGSQL用于PostgreSQL连接
- bcrypt.net用于密码安全
- 图表:仪表板中的图表
- 燃烧:用于LocalStorage并显示通知
- Blazorise :对于像图标这样的UI元素
?基础设施
- 容器化的PostgreSQL数据库
- 用于缓存和消息经纪的容器重新介绍
- 异步操作的背景服务
- 身份验证代码的电子邮件服务
?高级功能
货币化
- 广告:通过在重定向页面中显示大量的8个广告,支持赚钱的支持。
数据管理
- 自定义分页实现
- 链接操作的交易管理以确保原子能
- 碰撞处理策略
- 非数字哈希产生
缓存系统
- 通用的REDIS缓存实现
- 批量缓存支持
- 高流量场景的优化性能
- REDIS队列用于背景服务通信
分析
- 详细的访问者分析
- 设备和浏览器检测
- 地理位置跟踪
- IP和用户代理数据的背景处理
- 具有客户见解的全面用户仪表板:
- 图表显示了上个月的点击。
- 图表显示,单击更有可能发生在一天中的时间。
- 每周点击增长
- 总链接计数
- 昨天点击
- 每个链接平均点击
- 上点击链接列表。
- 最高国家点击器来自。
- 点击器使用的顶级设备。
- 表显示了5个最近的缩短链接。
链接缩短
- 支持单个和批处理链接缩短
- 切换链接的激活和货币化
- 易于使用和自定义表,以管理用户配置文件和Shortener页面中的缩短链接。
实时更新
- 实时统计的信号集成
- 即时余额和个人资料统计更新
- 实时用户个人资料同步