B站:无盐七
QQ群:963592267
公众号:默库
零成本、无需懂代码部署带后台的高安全WEB项目
- 若github pages部署纯前端网页,缺乏后端数据支持,若增加后端服务器又可能增加维护成本。
本项目利用金山文档,通过全链条零成本设计方案,实现无需服务器,又可具备一定后端处理能力的网站项目,增加可玩性。 - 由于若采用官网提供的webhook + 令牌方式部署网页会出现跨站问题,因此需要一层中介来解决此类问题。
本项目在金山文档与前端网页之间增加一层中间层,从而解决了跨站问题。 - 为了增加安全性,以避免暴露金山文档后台,因此采用中间层 + 密钥分配算法设计。
采用github pages + netcut + 金山云文档的形式,实现具备一定的安全性、交互性的网站。 - 为了实现数据存储和数据处理。
采用金山云文档平替代“云数据库”,采用Airscript定时脚本进行数据处理。 - 提高扩展能力。
本项目设计思路可实现更过有趣功能噢~
- 📀 解决CORS跨域问题
- 💿 低代码部署
- ♾️ 零本方案
- 💽 一定交互能力
- 🔥 兼容airscript 1.0和airscript 2.0(Beta)
https://www.bilibili.com/video/BV1hb5sz6EaT
- 显示层:fork或直接复制项目代码到你的仓库,仓库名为xxx.github.io。(这里的xxx为你github的昵称。自动会启用github page。)
- 中间层:创建三个带密码(默认为:imoki)的netcut文件,名称分别为xxx_key_read、xxx_data_read、xxx_data_write。(这里的xxx为你自定义的昵称)
- 修改代码开头提示的配置:将中间层的三个文件链接覆盖掉代码中(需要修改的部分)链接 。(仅改动script.js和services.js开头部分即可)
- 数据层:将services.js脚本复制到金山文档Airscript脚本编辑器中,添加网络API,并加入定时任务。
- 此时就可以访问到你的WEB项目啦。 访问:https://xxx.github.io
三级设计方案:显示层 - 中间层 - 数据层
显示层 - 采用Github Pages进行部署
中间层 - 采用netcut临时文本进行缓存
数据层 - 采用金山云文档进行存储和处理
前端 - 即显示层(index.html、script.js、style.css)
后端 - 即中间层(“密钥文件”、“仅读文件”、“仅写文件”)与数据层(services.js)
前端处理流程
- 密钥获取、解密、缓存 - 安全处理
- 通过“读密码”读取“仅读文件”数据 - 拿漂流瓶
- 通过“写密码”写入“仅写文件”数据 - 扔漂流瓶
后端处理流程
- 密钥生成、加密、存储、修改 - 安全处理
- 读取“仅写文件”数据,将数据写入金山文档,清空“仅写文件”,修改密码 - 更新数据库漂流瓶集
- 根据金山文档数据选择漂流瓶更新“仅读文件”,修改密码 - 更新临时漂流瓶集
“密钥文件” - 文件名称为:xxx_key_read。“仅读文件”、“仅写文件”的密文密码
“仅读文件” - 文件名称为:xxx_data_read。临时漂流瓶集,前端从此文件中获取最新漂流瓶数据
“仅写文件” - 文件名称为:xxx_data_write。扔漂流瓶集,前端向此文件中追加漂流瓶数据,后端从此文件中获取最新漂流瓶数据
“读密码” - 默认设置为:imoki。“仅读文件”的明文密码
“写密码” - 默认设置为:imoki。“仅写文件”的明文密码
金山文档密钥数据 - “读密码”、“写密码”的密文密码
金山文档用户数据 - 数据库漂流瓶集
出于安全考虑,避免数据爬虫、数据篡改、数据窃取,所以设计一些安全机制。
中间层:仅缓存部分数据,对中间层文件都设置动态密码,通过数据层生成动态密码并自动分配最新密码,避免数据爬虫、篡改。
数据层:存储着所有信息,对密码存储采用密文形式,避免数据窃取,即使被脱库数据也不会以明文显示。
加解密算法:采用非常规自定义的BMAS算法,代码中也开放了加解密增添入口,可以方便拓展你自己设计的加解密算法,以实现更高安全性。
欢迎各种形式的贡献
- 2025-04-18
- 推出基于金山文档的漂流瓶项目