intranet

🌐 轻量级本地文件服务器与插件平台

基于 Python 标准库的轻量级 HTTP 文件服务器,支持插件扩展与 CGI 动态脚本,提供路径隔离、Token 认证等多重安全防护,适合本地开发及内网文件共享。

收藏
7.7k
安装
2k
版本
0.0.0
CLS 安全性认证2026-05-09
点击查看完整报告 >

使用说明

Intranet 是一个基于 Python 标准库构建的轻量级本地 HTTP 文件服务器,旨在为开发者提供无需 Apache/nginx 且无需 root 权限的便捷文件服务方案。其核心用法是通过简单的命令行指令启动服务,默认监听 127.0.0.1:8080,支持自定义端口和主机绑定。该工具采用目录挂载机制,允许通过 config.json 将外部插件目录映射到特定 URL 前缀,同时支持 CGI 动态脚本执行——但仅限于名为 index.py 的入口文件,且需满足可执行权限和 SHA-256 哈希验证(针对插件)的严格要求。

该技能的显著优点在于其完善的安全架构设计。首先,它实现了 Webroot 隔离,配置文件与 web 根目录分离,确保敏感配置永不暴露。其次,CGI 功能默认关闭,启用后也通过多重机制限制执行范围:仅允许 index.py、要求文件具有可执行位、插件 CGI 需配置哈希校验。此外,内置的路径遍历防护(_safe_path 函数)、符号链接目标检查、Host 头白名单以及 Token 认证机制(支持 Bearer Token 和 Session Cookie),共同构成了纵深防御体系。依赖方面仅使用 Python 3 标准库,无外部 pip 包引入,避免了供应链攻击风险。

然而,该技能也存在一定局限性。作为个人开发者(T3 来源)维护的项目,其长期维护性和社区治理水平不及顶级开源组织背书的项目。功能层面,CGI 支持仅限于 Python 脚本,且缺乏企业级功能如 TLS 加密、审计日志和细粒度访问控制。网络层面默认无加密传输,不适合在不受信任的公网环境直接暴露。此外,虽然 CGI 有安全限制,但启用后执行用户提供的代码仍存在固有风险,插件来源的可信度完全依赖用户自行验证。

该技能最适合本地开发环境中的静态文件服务、团队内部轻量级文件共享、开发调试时的临时 HTTP 服务器,以及配合插件机制构建内部工具面板。目标用户主要是前端开发者、全栈工程师、DevOps 人员以及需要快速搭建内网文件服务的团队。

使用时的常规风险包括:若开启 LAN 访问(--host 0.0.0.0)但未配置 Token 认证和 allowed_hosts,可能导致未授权访问;CGI 功能启用后,若插件来源不可信或哈希验证被绕过,可能引发远程代码执行;30 秒的 CGI 超时虽能防止资源耗尽,但恶意脚本仍可能在超时前造成 CPU 占用;此外,由于缺乏 HTTPS,在开放网络中传输敏感数据存在被窃听风险。建议仅在受信任的网络环境中使用,并通过反向代理(如 Cloudflare Tunnel 或 Nginx)提供 TLS 加密。

安全解读

综合评估

Intranet 是一款基于 Python 标准库构建的轻量级本地 HTTP 文件服务器,定位为开发调试工具和内部文件共享解决方案。其核心设计理念是"防御性安全"——在提供足够功能的同时,将潜在攻击面降至最低。

核心用法

该 Skill 通过单一 Python 脚本实现完整功能,支持三种运行模式:

  • 基础模式python3 intranet.py start 在 127.0.0.1:8080 提供静态文件服务
  • 插件扩展:通过 config.json 将外部目录挂载到 URL 前缀,支持静态或CGI动态内容
  • LAN 访问--host 0.0.0.0 结合 Token 认证和 Host 白名单,实现安全的局域网共享

静态文件服务支持目录浏览,插件系统允许模块化扩展,CGI 执行仅限 index.py 入口文件,且需 SHA-256 哈希验证。

显著优点

1. 零供应链风险:仅依赖 Python 3 标准库(http.server、pathlib、subprocess 等),无第三方包,彻底消除依赖混淆和供应链攻击可能。

2. 多层安全机制

  • CGI 默认关闭,需显式启用
  • 路径遍历防护:_safe_path 函数确保所有访问不超出基准目录
  • Token 认证 + Session Cookie + Host 白名单三重防护
  • 配置文件隔离在 webroot 之外

3. 部署极简:单脚本可运行,无需 Apache/Nginx 等外部服务,无需 root 权限,适合快速搭建开发环境。

4. 来源可信:MIT 开源协议,GitHub 公开仓库(odrobnik/intranet-skill),代码透明无混淆。

潜在缺点与局限性

1. 无原生 HTTPS:仅支持 HTTP 明文传输,Token 和文件内容存在中间人窃听风险。虽然设计为本地工具,但 LAN 暴露场景需要额外部署反向代理。

2. 会话持久性问题:会话密钥运行时随机生成,服务器重启后所有会话失效,可能影响用户体验。

3. CGI 功能受限:仅支持 index.py 单入口,复杂动态应用需额外架构设计。

4. 无访问日志:默认禁用日志记录,不利于生产环境审计。

5. 性能天花板:基于 http.server 单线程模型,高并发场景性能有限。

适合人群

  • 开发者:本地前端开发、API 模拟、静态站点预览
  • 小型团队:内部文档、文件共享,配合 VPN 或内网使用
  • 教育场景:Python 网络编程教学示例,代码简洁易懂
  • 边缘场景:IoT 设备、嵌入式系统的轻量文件服务

不适合:需要高并发、公网直接暴露、复杂动态应用的生产环境。

常规风险

| 风险类型 | 等级 | 说明 |
|---------|------|------|
| 中间人攻击 | 中 | HTTP 明文传输,需配合 HTTPS 反向代理 |
| 任意代码执行 | 低 | CGI 默认关闭,启用后需哈希验证 |
| 路径遍历 | 极低 | 有完善的路径解析和验证机制 |
| 信息泄露 | 低 | 服务器版本标识可能辅助指纹识别 |
| 会话劫持 | 低 | 密钥随机生成,但重启失效 |

使用建议

1. 本地开发:直接使用默认配置,无需额外安全设置
2. LAN 共享:必须配置 --tokenallowed_hosts,建议配合 Nginx/Caddy HTTPS 反向代理

3. 启用 CGI:仅添加可信插件,定期更新 SHA-256 哈希值

4. 生产环境:建议每 90 天更新版本,关注安全公告

intranet 内容

scripts文件夹
手动下载zip · 14.7 kB
intranet_web.pytext/plain
请选择文件