Skip to content

security

blycr edited this page Jan 1, 2026 · 2 revisions

安全说明

本页面介绍LAN文件服务器的安全特性、安全配置和安全最佳实践,帮助您确保服务器的安全运行。

1. 安全特性

1.1 身份认证

  • 动态密码验证:基于时间窗口的动态密码验证机制
  • 固定用户名:使用固定用户名 blycr 进行身份验证
  • 动态密码格式:密码格式为 yyyymmddHHMM(基于当前时间)
  • 时间窗口:支持当前时间前后5分钟内的密码
  • 防重放攻击:记录已使用的密码时间戳,防止重复使用
  • 会话管理:基于UUID的会话ID,24小时有效期
  • 会话Cookie:使用HTTP Cookie维持登录状态

1.2 防暴力破解

  • IP封禁机制:连续5次认证失败后,IP临时封禁5分钟(可配置)
  • 失败尝试计数:记录每个IP的失败尝试次数
  • 自动解封:封禁时间到期后自动解封IP

1.3 路径安全

  • 目录遍历防护:使用Path.is_relative_to()防止目录遍历攻击
  • 白名单文件类型:仅处理预定义的20种多媒体文件格式
  • 共享目录限制:仅允许访问配置的共享目录内的文件

1.4 数据安全

  • 本地存储:所有文件都存储在本地,不会上传到云端
  • 局域网访问:仅支持同一网络下的设备访问
  • 无外部依赖:不依赖任何外部服务,减少安全风险

2. 安全配置

2.1 认证配置

在config.json文件中配置认证相关设置:

{
  "auth": {
    "username": "blycr"
  },
  "server": {
    "failed_auth_limit": 5,
    "failed_auth_block_time": 300
  }
}

注意:当前版本使用固定用户名和基于时间的动态密码,无需配置密码哈希和盐值。

2.2 服务器安全配置

服务器安全配置集成在config.json文件中,与认证配置位于同一文件中。

2.3 密码生成

  • 使用强密码,包含大小写字母、数字和特殊字符
  • 定期更换密码
  • 不要使用容易猜测的密码

3. 安全最佳实践

3.1 配置安全

  1. 使用强密码:配置复杂的用户名和密码
  2. 限制共享目录:仅共享必要的目录,避免共享系统目录
  3. 定期备份配置文件:防止配置丢失
  4. 不要修改默认的安全设置:除非您了解其影响

3.2 运行安全

  1. 仅在信任的网络中运行:LAN文件服务器设计用于局域网环境
  2. 定期更新Python:保持Python版本最新,获取最新安全补丁
  3. 监控服务器日志:定期检查日志文件,发现异常活动
  4. 不要在公网中暴露:LAN文件服务器不适合在公网环境中运行

3.3 访问安全

  1. 限制访问IP:仅允许信任的IP访问服务器
  2. 定期清理会话:定期清理过期会话
  3. 使用HTTPS:如果需要,可以配置SSL证书启用HTTPS
  4. 及时退出登录:使用完毕后及时退出登录

4. 潜在安全风险

4.1 已知限制

  • 仅支持单用户:目前仅支持单一用户身份验证
  • 无HTTPS默认支持:需要手动配置SSL证书
  • 无文件级权限控制:所有文件对认证用户都可见

4.2 安全建议

  1. 使用防火墙:配置防火墙限制服务器访问
  2. 定期更新:关注项目更新,获取最新安全修复
  3. 审计代码:如果您有安全顾虑,可以审计代码
  4. 使用VPN:如果需要从外部访问,可以使用VPN

5. 安全更新

  • 定期检查项目GitHub仓库获取安全更新
  • 关注项目的安全公告
  • 及时更新到最新版本

6. 安全事件响应

如果您发现安全问题:

  1. 立即停止服务器
  2. 检查日志文件,了解事件详情
  3. 修复安全问题
  4. 更改密码
  5. 重新启动服务器
  6. 考虑向项目维护者报告安全问题

下一步