Website Migration Notice: SafePoint is now operated by CyberServal.Learn more →
DiscussionSLA

[Suggestion] Support configuring path in upstream server

Published 2 years ago

# Github Issue
# enhancement

Published 2 years ago

profile_photo

IcedSoyaBeanMilk

Updated 2 years ago

0

问题描述

上游服务器配置带有二级路径http://localhost:9090/dsp/,如下图:
001

直接用域名访问,无法直接访问到二级路径,只能访问到http://localhost:9090对应的页面:
002

想用域名访问,必须额外加上二级路径https://mydomain.cn/dsp:
003

nginx中可以实现用域名https://mydomain.cn直接访问到http://localhost:9090/dsp/:
004
但是safeline不行

版本号

5.2.0

复现方法

问题描述里已经写明

期望的结果

修复该问题

profile_photo

Lorna0

Updated 2 years ago

0

雷池目前不支持在上游服务器中填写路径,填写了也不会载入到代理配置中。目前展示形式确实会有能支持的误解,我们会在后续版本中加一下前端校验,做出明确提示。

不支持原因有两方面,一方面是 nginx 上游服务器路径代理的逻辑有点复杂,例如 http://192.168.10.10:88http://192.168.10.10:88/ 的效果都不一样。支持的话小白比较难理解,很容易配错,不太符合社区版的定位。

另一方面是 WAF 主要是基于已经成型了的网站进行攻击防护,所以雷池暂不打算加入太深的建站管理能力。如果想修改客户端访问网站时的根路径,可以直接修改源站上的文件路径。有其他场景需要的话也可以具体说说。

profile_photo

Lvshujun0918

Updated 2 years ago

0

那建议上游服务器文本框直接拆成IP(域名)和端口两个文本框,后面再加一个http或https选择框即可。

profile_photo

ct-jaryn

Updated 8 months ago

0

@monkeycode-ai 评估当前issue

profile_photo

MonkeyCode-AI

Updated 8 months ago

0

GitHub Issue 深度评估报告

1. 整体摘要 (Executive Summary)

这是一个关于 SafeLine WAF 上游服务器路径配置支持的功能请求。用户希望能够在配置上游服务器时包含路径信息(如 http://localhost:9090/dsp/),但目前 SafeLine 会忽略路径部分,只使用主机和端口。该问题清晰描述了使用场景和期望行为,但维护团队已在评论中明确表示暂不支持此功能。

2. 详细评估 (Detailed Assessment)

评估维度评分 (1-5)评估说明
清晰度5问题描述非常清晰,包含具体的使用场景、截图对比和期望行为,无任何歧义
完整性4提供了版本信息、复现步骤和期望结果,但缺少具体的错误日志或配置示例
可复现性/可行性5根据描述完全可以复现,技术实现上可行但需要修改多个组件

3. 分类与优先级 (Classification & Priority)

  • 建议标签: feature-request, enhancement, backend, needs-design-discussion
  • 严重等级: Minor (功能增强,不影响核心安全防护能力)
  • 建议优先级: Low (维护团队已明确表示暂不支持,属于锦上添花的功能)

4. 影响与风险 (Impact & Risks)

  • 影响范围: 主要影响 management/tcontrollerd 模块的 nginx 配置生成逻辑,可能需要修改上游服务器解析、nginx 模板和前端验证逻辑
  • 潜在风险:
    • 破坏性变更:可能需要修改上游服务器数据格式
    • 配置复杂性:如维护团队所述,路径处理逻辑复杂(如 http://host:port vs http://host:port/ 的区别)
    • 用户教育成本:需要清晰的文档说明路径配置的语义

5. 行动建议 (Actionable Suggestions)

  • 对提交者的回应:

    • 感谢您详细的功能建议和清晰的描述
    • 目前团队暂不支持此功能,主要考虑到配置复杂性和产品定位
    • 建议暂时通过修改源站文件路径或使用 nginx 反向代理层来解决
  • 对维护团队的建议:

    • 下一步: 将此功能标记为未来考虑,优先处理更高优先级的 issues
    • 初步解决方案构想:
      1. 修改 url.Parse 后的处理逻辑,保留路径信息
      2. 在 nginx 配置模板的 proxy_pass 指令中添加路径支持
      3. 增加前端验证和用户提示,说明路径配置的语义
      4. 提供清晰的文档说明此功能的限制和使用场景
profile_photo

MonkeyCode-AI

Updated 8 months ago

0

⏳ MonkeyCode-AI 正在分析,请稍等片刻...

profile_photo

MonkeyCode-AI

Updated 8 months ago

0

GitHub Issue 深度评估报告

1. 整体摘要 (Executive Summary)

这是一个关于 SafeLine WAF 上游服务器路径配置的功能请求。用户希望支持在 upstream 配置中包含路径(如 http://host:port/path),目前系统只支持主机和端口。这是一个清晰的增强请求,但实现需要修改 nginx 配置生成逻辑,属于中等优先级的功能改进。

2. 详细评估 (Detailed Assessment)

评估维度评分 (1-5)评估说明
清晰度5问题描述非常清晰,包含具体的使用场景、当前限制和期望行为,并提供了详细的截图说明
完整性4提供了版本信息、复现方法和期望结果,但缺少具体的错误日志或技术细节
可复现性/可行性4根据代码分析,问题确实存在且可复现。功能实现可行,但需要修改多个组件

3. 分类与优先级 (Classification & Priority)

  • 建议标签: feature-request, enhancement, backend, nginx
  • 严重等级: Minor (不影响核心安全功能,属于便利性改进)
  • 建议优先级: Medium (对用户体验有实质性提升,但非紧急安全修复)

4. 影响与风险 (Impact & Risks)

  • 影响范围: 主要影响 management/tcontrollerd/controller/website.go 中的 nginx 配置生成逻辑,以及相关的 URL 解析和代理配置。可能涉及前端 UI 的输入验证。
  • 潜在风险: 需要谨慎处理路径拼接和 URL 编码,避免引入安全漏洞(如路径遍历)。修改 proxy_pass 配置可能影响现有的反向代理行为。

5. 行动建议 (Actionable Suggestions)

  • 对提交者的回应:

    • 感谢您详细的功能请求!我们理解您希望在 upstream 配置中支持路径的需求。
    • 目前团队正在评估这个功能的实现方案,考虑到 nginx 配置的复杂性,我们需要确保修改不会影响现有的安全防护功能。
  • 对维护团队的建议:

    • 下一步: 需要修改 generateNginxConfig 函数来正确处理 URL 路径,更新 nginx 配置模板中的 proxy_pass 指令以包含路径部分。
    • 初步解决方案构想:
      1. 在 URL 解析时提取路径部分(urlInfo.Path
      2. 修改 nginx 配置模板,将 proxy_pass %s://%s; 改为 proxy_pass %s://%s%s;
      3. 添加路径验证和清理逻辑,防止安全漏洞