{"repo":"vvbbnn00/onedrive-index","free":true,"listed":false,"github":"https://github.com/vvbbnn00/onedrive-index","clone":"git clone https://github.com/vvbbnn00/onedrive-index.git","description":"☁ OneDrive public directory listing, based on onedrive-vercel-index, the secondary development Onedrive project fixes security vulnerabilities and improves performance, and provides Docker environment deployment solutions. 基于onedrive-vercel-index，修复安全漏洞并提升性能的二次开发Onedrive项目，提供Docker环境部署方案。","language":"TypeScript","stars":23,"topics":["docker","nextjs","onedrive-index","onedrive-vercel-index","onedrive","react"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"Onedrive Docker Index 中文 English 🤔 这是什么？ 本项目是基于ondrive-vercel-index的二次开发项目。由于原项目已经处于 Archive 状态，因此，本项目的主要目的是修复原项目中存在的较为严重的安全漏洞（详见安全问题修复)、并对界面与性能进行优化，与此同时，也提供了 Docker 环境的部署方案。本项目继承了原项目所有的功能特性，您可以参照原项目的帮助文档来进行自定义操作。 很惭愧，作为一个 超业余前后端开发者 ，我的编程水平远不及参与原项目开发的各位大佬，因此无法对二开后的项目质量做出保证；同时，因为本项目的创建初衷是为了搭建我自己的个人站点，因此，其中存在许多定制化的内容，若有需要，您可以自行调整。您可以在后文的定制您的站点部分找到帮助。 ❓ 它与 onedrive-vercel-index 有何不同？ - 修复了若干严重的安全问题 - 提供了Docker部署方案 - 提高Redis缓存利用率，提升网站性能 - 界面显示优化（支持自定义背景图片等） - 提升用户安全性 - ... 🎉 快速上手 虽说快速上手，但本项目的实际操作流程，相较于原项目，确实繁琐不少。 Step 1 Clone 这个项目到您的服务器，并获取您自己的 ClientID 与 ClientSecret 。 获取方法参考原项目教程。 不过，与原教程不同的是，获取的 ClientSecret 无需加密！请在Step 2中直接填写未经加密的 ClientID 与 ClientSecret ！ Step 2 在项目根目录创建 .env 文件，文件需要填写的内容如下： 注意 ClientSecret 是未经加密的！ Step 3 根据不同的系统，选择相应的指令，运行指令构建并启动镜像。 Linux系统： Windows系统： Step 4 项目已经构建完成，端口为 20011 ，不过我们更推荐您使用Nginx反向代理的方式提供服务。下面是一个反向代理的示例配置： Step 5 接下来的步骤与原教程完全一致，点击查看。 🎉大功告成！ ❗ 安全问题修复 请勿利用下文的任何漏洞对任何服务器发起攻击！ 本项目针对 onedrive-vercel-index 中存在的部分较为严重的安全问题进行了修复，为了保证用户的数据安全，下面仅对漏洞做简单的描述，不提供任何漏洞复现指导。 1、[CRITICAL] 受保护的路径文件读取漏洞 在 /api/item 中，传入的参数 id 未经检查，可以通过该漏洞获取受保护的文件夹或文件ID、也可以获取受保护的文件内容。 2、SECRET KEY泄露 而在 /onedrive-vercel-index-oauth/step-2/ 、 /onedrive-vercel-index-oauth/step-3/ 中，存在前端引用 /utils/oAuthHandler.ts 文件，这会直接导致 SECRET KEY 的泄露。 3、后端鉴权漏洞 在 /onedrive-vercel-index-oauth/step-3/ 中，存在一步操作，是将获取到的 access token 和 refresh token 提交给服务器，保存至 redis 。 分析程序代码可知，程序首先判断了登陆账号的用户名是否与设置的一致，若一致，则发送至服务器。然而，整个过程都是在前端完成的，而在后端代码中，不存在校验。也就是说，存在恶意提交覆盖原有 token 的风险。 ⚠ 注意事项 由于经过二次开发，项目与先前项目已有不同，故存在以下需","default_branch":null,"files":null,"tree":[],"storefront":"/r/vvbbnn00","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/vvbbnn00/onedrive-index/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}