-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
摘要:这是基于金山文档的漂流瓶交互式项目介绍
<title>金山漂流瓶</title> <style> body { font-family: Arial, sans-serif; line-height: 1.6; margin: 20px; } h1 { text-align: center; } #shield { display: flex; justify-content: center; gap: 10px; margin: 20px 0; } a { color: #007bff; text-decoration: none; } a:hover { text-decoration: underline; } .section { margin-bottom: 20px; } .section h2 { border-bottom: 1px solid #ccc; padding-bottom: 5px; } ul { list-style: none; padding: 0; } li::before { content: "• "; } .warning { background-color: #f8d7da; color: #721c24; padding: 10px; margin-bottom: 20px; border: 1px solid #f5c6cb; border-radius: 5px; font-weight: bold; } </style>
目前netcut已限制金山ip访问,因此“金山漂流瓶”项目不具备应用能力,仅作为解决金山“跨域”问题的思路参考。可访问其它可落地应用的项目
🎊 简介
零成本、无需懂代码部署带后台的高安全WEB项目
- 若github pages部署纯前端网页,缺乏后端数据支持,若增加后端服务器又可能增加维护成本。
- 本项目利用金山文档,通过全链条零成本设计方案,实现无需服务器,又可具备一定后端处理能力的网站项目,增加可玩性。
- 由于若采用官网提供的
webhook + 令牌方式部署网页会出现跨站问题,因此需要一层中介来解决此类问题。 - 本项目在金山文档与前端网页之间增加一层中间层,从而解决了跨站问题。
- 为了增加安全性,以避免暴露金山文档后台,因此采用中间层 + 密钥分配算法设计。
- 采用github pages + netcut + 金山云文档的形式,实现具备一定的安全性、交互性的网站。
- 为了实现数据存储和数据处理。
- 采用金山云文档平替代“云数据库”,采用Airscript定时脚本进行数据处理。
- 提高扩展能力。
- 本项目设计思路可实现更过有趣功能噢~
✨ 特性
- 解决CORS跨域问题
- 低代码部署
- 零成本方案
- 一定交互能力
- 兼容airscript 1.0和airscript 2.0(Beta)
🛰️ 文字部署步骤
- 显示层: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算法,代码中也开放了加解密增添入口,可以方便拓展你自己设计的加解密算法,以实现更高安全性。
Metadata
Metadata
Assignees
Labels
No labels