附件上传与下载路径安全加固
xiaobai 17小时前

2026-06-06 附件上传与下载路径安全加固

本次保留附件付费下载业务规则,只针对附件文件安全、路径安全和图片上传校验做加固。

主要改动:

  1. 附件文件名和物理路径二次校验
  • 文件:model/attach.func.php
  • 新增 attach_safe_filename(),只允许形如 YYYYMM/uid_random.ext  YYYYMMDD/uid_random.ext 的附件路径。
  • 新增 attach_path(),统一生成附件物理路径,拒绝空路径、绝对路径、.././、双斜杠等异常路径。
  • 附件删除、按帖子删除、按用户删除统一改用 attach_path(),避免数据库异常文件名导致误删非附件目录文件。
  1. 附件下载路径加固
  • 文件:route/attach.php
  • 下载时使用 attach_path() 解析物理文件。
  • 对异常附件文件名直接返回附件不存在。
  • 保留原有登录、版块下载权限、付费附件扣费逻辑。
  • 下载响应头中的原始文件名移除换行和双引号,降低响应头注入风险。
  1. 头像和封面上传真实图片校验
  • 文件:model/attach.func.php
  • 新增 attach_validate_image_data(),基于 getimagesizefromstring() 校验图片内容。
  • 文件:route/my.php
  • 用户头像和封面上传保存前增加服务端真实图片校验。
  • 禁止 SVG 内容,避免脚本型图片风险。
  1. 附件落盘规则收紧
  • 文件:model/attach.func.php
  • attach_dir_save_rule 只允许 Ym  Ymd
  • 从 Session 临时附件迁移到正式附件目录时,校验临时文件名格式和临时文件存在性。

已有防护确认:

  • 文件:upload/.htaccess
  • 上传目录已有 Apache 侧脚本禁执行规则,会拒绝 PHP、脚本、可执行文件等风险扩展执行或访问。
  • 本次未改变附件付费下载规则,只加固绕过和文件路径风险。

欢迎大家加入QQ交流群:785017513

最新回复 (0)
全部楼主
返回
xiaobai
二级用户组
27
主题数
4
帖子数
扫码访问