Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

README.md

🌊 金山漂流瓶

基于「金山文档」的漂流瓶项目 | 零成本·高安全·云存储方案

🍻 交流渠道

B站:无盐七
QQ群:963592267
公众号:默库

🎊 简介

零成本、无需懂代码部署带后台的高安全WEB项目

  1. 若github pages部署纯前端网页,缺乏后端数据支持,若增加后端服务器又可能增加维护成本。
    本项目利用金山文档,通过全链条零成本设计方案,实现无需服务器,又可具备一定后端处理能力的网站项目,增加可玩性。
  2. 由于若采用官网提供的webhook + 令牌方式部署网页会出现跨站问题,因此需要一层中介来解决此类问题。
    本项目在金山文档与前端网页之间增加一层中间层,从而解决了跨站问题。
  3. 为了增加安全性,以避免暴露金山文档后台,因此采用中间层 + 密钥分配算法设计。
    采用github pages + netcut + 金山云文档的形式,实现具备一定的安全性、交互性的网站。
  4. 为了实现数据存储和数据处理。
    采用金山云文档平替代“云数据库”,采用Airscript定时脚本进行数据处理。
  5. 提高扩展能力。
    本项目设计思路可实现更过有趣功能噢~

✨ 特性

- 📀 解决CORS跨域问题
- 💿 低代码部署
- ♾️ 零本方案
- 💽 一定交互能力
- 🔥 兼容airscript 1.0和airscript 2.0(Beta)

📺️ 视频教程

https://www.bilibili.com/video/BV1hb5sz6EaT

🛰️ 文字部署步骤

  1. 显示层:fork或直接复制项目代码到你的仓库,仓库名为xxx.github.io。(这里的xxx为你github的昵称。自动会启用github page。)
  2. 中间层:创建三个带密码(默认为:imoki)的netcut文件,名称分别为xxx_key_read、xxx_data_read、xxx_data_write。(这里的xxx为你自定义的昵称)
  3. 修改代码开头提示的配置:将中间层的三个文件链接覆盖掉代码中(需要修改的部分)链接 。(仅改动script.js和services.js开头部分即可)
  4. 数据层:将services.js脚本复制到金山文档Airscript脚本编辑器中,添加网络API,并加入定时任务。
  5. 此时就可以访问到你的WEB项目啦。 访问:https://xxx.github.io

⭐ 架构说明

三级设计方案:显示层 - 中间层 - 数据层
显示层 - 采用Github Pages进行部署
中间层 - 采用netcut临时文本进行缓存
数据层 - 采用金山云文档进行存储和处理
前端 - 即显示层(index.html、script.js、style.css)
后端 - 即中间层(“密钥文件”、“仅读文件”、“仅写文件”)与数据层(services.js)

🌈 业务流程

前端处理流程

  1. 密钥获取、解密、缓存 - 安全处理
  2. 通过“读密码”读取“仅读文件”数据 - 拿漂流瓶
  3. 通过“写密码”写入“仅写文件”数据 - 扔漂流瓶

后端处理流程

  1. 密钥生成、加密、存储、修改 - 安全处理
  2. 读取“仅写文件”数据,将数据写入金山文档,清空“仅写文件”,修改密码 - 更新数据库漂流瓶集
  3. 根据金山文档数据选择漂流瓶更新“仅读文件”,修改密码 - 更新临时漂流瓶集

🧾文件说明

“密钥文件” - 文件名称为:xxx_key_read。“仅读文件”、“仅写文件”的密文密码
“仅读文件” - 文件名称为:xxx_data_read。临时漂流瓶集,前端从此文件中获取最新漂流瓶数据
“仅写文件” - 文件名称为:xxx_data_write。扔漂流瓶集,前端向此文件中追加漂流瓶数据,后端从此文件中获取最新漂流瓶数据
“读密码” - 默认设置为:imoki。“仅读文件”的明文密码
“写密码” - 默认设置为:imoki。“仅写文件”的明文密码
金山文档密钥数据 - “读密码”、“写密码”的密文密码
金山文档用户数据 - 数据库漂流瓶集

🔒 安全设计

出于安全考虑,避免数据爬虫、数据篡改、数据窃取,所以设计一些安全机制。
中间层:仅缓存部分数据,对中间层文件都设置动态密码,通过数据层生成动态密码并自动分配最新密码,避免数据爬虫、篡改。
数据层:存储着所有信息,对密码存储采用密文形式,避免数据窃取,即使被脱库数据也不会以明文显示。
加解密算法:采用非常规自定义的BMAS算法,代码中也开放了加解密增添入口,可以方便拓展你自己设计的加解密算法,以实现更高安全性。

🤝 欢迎参与贡献

欢迎各种形式的贡献

✨ Star 数

📝 更新日志

  • 2025-04-18
    • 推出基于金山文档的漂流瓶项目