首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >自研轻量短链;附件托管系统:从零搭建的私人生产级工具

自研轻量短链;附件托管系统:从零搭建的私人生产级工具

作者头像
用户11244887
发布2026-07-08 20:30:14
发布2026-07-08 20:30:14
170
举报

折腾了好几天,从架构设计、代码编写,到安全加固与实测,我终于把一套轻量短链 + 附件托管系统完整跑通并上线了。

它既是实用工具,也是一份完整作品;既是日常开发总结,更是一次安全能力的完整落地。

今天就把这套系统的核心功能、存储架构、路由设计与安全体系,完整跟大家分享一下。

一、核心功能:干净、实用、够用

清爽短链生成

基于Nginx伪静态转发,支持极简优雅的短链格式:

1.网页短链:/s/xxx

2.文件短链:/s/file/xxx

文件和网页的短码相同,通过内部路由区分

PS:链接干净、易记、易传播,适合引流、推广、临时入口、内部跳转等各种场景。访问层采用中转加载页,通过 JS 异步拉取真实HTML,能有效降低微信、QQ内置浏览器的拦截概率。

HTML 内容托管

系统支持直接粘贴并托管任意HTML内容,包括但不限于:

1️⃣落地页2️⃣活动公告3️⃣个人简介4️⃣海报说明5️⃣推广引流页面

支持三个权限,用户可自定义设置权限

PS:只要是HTML能承载的内容,都可以安全托管。非常适合个人运营、小团队内部使用、私域流量入口搭建。

附件安全分发

支持文件上传、在线预览、安全下载:

↓↓↓

图片、视频、音频自动在线预览,文档、压缩包直接安全下载,所有文件真实路径完全隐藏,不对外暴露

PS:即使有人猜到真实存储路径,直接访问也会返回 403 拒绝。代码层面做了硬拦截,所有私有目录禁止直接访问,只能通过系统分配的短链合法访问。

简洁后台管理

后台功能齐全且轻量化:

↓↓↓

1️⃣访问次数统计2️⃣HTML内容在线编辑

3️⃣附件上传/替换/解绑4️⃣短链权限控制和删除管理

界面简洁直观,上手成本极低。

纯文件架构,无数据库依赖

系统不依赖 MySQL、Redis 等任何数据库。

所有配置、索引、文件关系全部以JSON 文件存储,部署极简单,环境兼容性极强。

PS:上传就能跑,稳定、干净、零依赖,首次访问页面触发全自动初始化,自动创建所有安全存储目录与索引文件,权限自动设为0700严格隔离,无需手动建目录、无需配置、无需导入数据库,做到真正的上传即用。

二存储架构设计:隔离、安全

整个系统采用分目录物理隔离 + 双路由分发结构,从存储底层就做到权限严格、路径不暴露、越权不可能。

三层私有存储结构

所有核心数据统一放在外部不可直接访问的安全目录下:

①系统安全根目录↓

_safe_private_vault_886/

整个系统的核心数据根目录,权限 0700,仅程序可读写,外部无法直接访问

②HTML 页面仓库↓

_safe_private_vault_886/html_separate_files/

专门存放托管的 HTML 页面,文件名随机化,无规律、不可爆破,对应前端路由:/s/xxx

③附件安全存储目录↓

_safe_files_binding_886/

独立存放用户上传的附件,与 HTML 完全物理隔离,自动重命名,不保留原始文件名。对应前端路由:/s/file/xxx

④统一索引文件↓

_safe_private_vault_886/light_index.dat

本质是一个安全的JSON索引文件,负责维护:短链码-真实 HTML文件,文件码-真实附件路径,访问次数、创建时间、权限模式,附件绑定关系、备注名称。

所有访问、删除、编辑都通过索引统一调度,确保数据不乱、文件不残留。

双路由分发结构

系统通过路由严格区分用途,前端永远看不到真实路径:

网页路径:/s/xxx

加载对应的 HTML 页面,用于展示落地页、引流页、说明页。

文件路径:/s/file/xxx

加载对应的附件,支持图片/视频/音频在线预览,其他文件自动下载。

两条路由完全隔离,互不干扰,安全性进一步提升。

存储架构亮点

1️⃣物理隔离:网页、附件、索引分目录存放

2️⃣权限最小化:目录 0700,禁止外部遍历

3️⃣文件名随机化:杜绝路径爆破与覆盖攻击

4️⃣双路由分离:页面与附件各司其职

5️⃣联动删除:删短链=同步删HTML+附件+解绑

6️⃣路径完全黑盒:前端永远只看到短链,看不到真实结构

安全说明:把“能不能打”讲清楚

工具好不好用是其次,能不能放心用才是关键。

这套系统从架构层面就做了完整安全设计,并经过基础安全实测加固。

Nginx + PHP双重目录拦截

所有私有目录_safe_*均在nginx层直接禁止访问,PHP层再做二次校验拦截。

外部无法直接读取任何附件、HTML文件与索引数据,双重保险。

附件自动安全重命名

上传文件不会保留原始文件名,全部随机重命名并打散存储。

从根源上杜绝:恶意文件名利用、脚本执行、上传木马等风险。

无数据库 → 天然免疫SQL注入

系统完全不操作数据库,因此不存在任何 SQL 注入漏洞,安全基础先天拉满。

防路径穿越、防目录遍历

所有文件路径严格过滤与约束,无法通过 ../等方式穿越读取系统敏感文件。

防爬虫、防批量扫描

设置noindex规则,路由隔离,防止短链与附件被批量爬取。

后台安全加固:隐藏入口和密码鉴权

1️⃣后台入口隐藏,非管理员无法发现

2️⃣双因子:密钥入口 + 登录密码

3️⃣内置IP访问限流,防止暴力破解

基础安全实测通过

系统已完成基础安全测试:

↓↓↓

1️⃣防SQL注入 ✅系统无数据库

2️⃣防XSS攻击 ✅前端无用户提交窗口

3️⃣防目录遍历 ✅权限路径严格约束

4️⃣防恶意文件上传执行 ✅储存目录无执行权限

5️⃣防路径爆破 ✅权限路径严格约束

6️⃣防爬虫扫描 ✅路由隔离等

7️⃣防小规模CC攻击 ✅内置简易IP拉黑限流机制

适用场景:稳、私、安全

这套系统尤其适合:

个人开发者、小团队、私域运营、内部工具、落地页托管、临时文件安全分发。

架构轻量、部署简单、安全性高,是真正可以投入“生产环境”使用的小工具。

做这个系统,不是为了炫技,而是想把三件事真正落地:开发能力+安全思维+轻量架构,代码干净、结构稳定、存储规范、路由清晰、安全性足够高,这就是我心中“合格的私人小系统”的标准。

如果你也喜欢自研小工具、做完整项目、研究安全与架构,

欢迎关注,后面我会继续把更多完整项目一步步分享出来。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 芸知 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档