chaitin / SafeLine

serve as a reverse proxy to protect your web services from attacks and exploits.
https://waf.chaitin.com
GNU General Public License v3.0
12.07k stars 749 forks source link

[SUGGESTION] upstream check meet 401 error in root paths #973

Open mayipepsi opened 3 months ago

mayipepsi commented 3 months ago

背景与遇到的问题

image image

会一直收到这检测请求,没办法给Path / 放权

建议的解决方案

提供一个可配置的path 检测

mayipepsi commented 3 months ago
image
Lorna0 commented 3 months ago

虽然 401 是一个错误状态码,但确实网络连接和服务器一般是正常的。下个版本我们会将 401 判断为状态正常。

Lvshujun0918 commented 2 months ago

虽然 401 是一个错误状态码,但确实网络连接和服务器一般是正常的。下个版本我们会将 401 判断为状态正常。

感觉这并没有解决实际的问题, 实际问题应该还是落在监测地址的配置或者开关上.

mayipepsi commented 2 months ago

业务服务器当接收到 需要认证的接口并且请求头没有token 是会返回 http status 401,为了减少这个警告提示 目前最好的解决方案就是你们把这个检测整成可配置,让业务服务器对 根目录 / 放认证权限 不太现实 这样会导致所有的API都不需要认证

Lorna0 commented 2 months ago

虽然 401 是一个错误状态码,但确实网络连接和服务器一般是正常的。下个版本我们会将 401 判断为状态正常。

感觉这并没有解决实际的问题, 实际问题应该还是落在监测地址的配置或者开关上.

上游检查目前只是在 web UI 上能看到,目的是让大家在配置站点的时候,能够快速确认配置结果是否正确。如果把这个检查功能配置做得太细致,我觉得有点本末倒置。

如果未来我们要增加 根据检查结果自动告警、根据检查结果动态调整负载配置,那做得比较细致才有意义。

Lorna0 commented 2 months ago

业务服务器当接收到 需要认证的接口并且请求头没有token 是会返回 http status 401,为了减少这个警告提示 目前最好的解决方案就是你们把这个检测整成可配置,让业务服务器对 根目录 / 放认证权限 不太现实 这样会导致所有的API都不需要认证

新版本不会对 401 进行告警,不需要调整业务服务器的。以后我们做的细致了的话会考虑支持配置检查的路径。

Lorna0 commented 2 months ago

目前上游检查主要还是排除一些最基础的配置错误,比如 地址写错了、协议写错了、网络不通、防火墙拒绝了 等等。如果要精确检查的话可能涉及 检测协议、请求方法、域名、路径、响应 code、超时时间、重试次数 之类,一下子全加有点复杂,我们未来会考虑做得更细致,也麻烦社区多反馈一下需求,非常感谢。

Lvshujun0918 commented 2 months ago

那我觉得目前先做一个开关来解决也未尝不可

mayipepsi commented 2 months ago

那我觉得目前先做一个开关来解决也未尝不可

您的意思一个开关控制是否进行健康检查吗

mayipepsi commented 2 months ago

业务服务器当接收到 需要认证的接口并且请求头没有token 是会返回 http status 401,为了减少这个警告提示 目前最好的解决方案就是你们把这个检测整成可配置,让业务服务器对 根目录 / 放认证权限 不太现实 这样会导致所有的API都不需要认证

新版本不会对 401 进行告警,不需要调整业务服务器的。以后我们做的细致了的话会考虑支持配置检查的路径。

可是,还是未解决 因检查路径是根路径导致认证失败,业务服务器一直会有错误日志

mayipepsi commented 2 months ago

你们要不将默认检查路径调整为 /safe-line/health 这样我们就可以针对性的做一些放权

Lvshujun0918 commented 2 months ago

对的,但我不是开发者,最终看他们了

---- 回复的原邮件 ---- | 发件人 | @.> | | 发送日期 | 2024年07月13日 01:25 | | 收件人 | chaitin/SafeLine @.> | | 抄送人 | 吕舒君 @.>, Comment @.> | | 主题 | Re: [chaitin/SafeLine] [建议] 上游检查根目录 401 告警问题 / upstream check meet 401 error in root paths (Issue #973) |

你们要不将默认检查路径调整为 /safe-line/health 这样我们就可以针对性的做一些放权

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

Lorna0 commented 2 months ago

业务服务器当接收到 需要认证的接口并且请求头没有token 是会返回 http status 401,为了减少这个警告提示 目前最好的解决方案就是你们把这个检测整成可配置,让业务服务器对 根目录 / 放认证权限 不太现实 这样会导致所有的API都不需要认证

新版本不会对 401 进行告警,不需要调整业务服务器的。以后我们做的细致了的话会考虑支持配置检查的路径。

可是,还是未解决 因检查路径是根路径导致认证失败,业务服务器一直会有错误日志

明白了,这个跟 https://github.com/chaitin/SafeLine/issues/916 比较像,确实需要处理一下,可以跟进一下