宝塔618特惠活动,企业版999元/年,宝塔SSL证书买1送1!限时抢购!查看活动
当前位置:论坛首页 > Linux面板 > 求助

【已完成】webhook404的问题

发表在 Linux面板2024-6-30 16:57  关闭 [复制链接] 12 1174

为了能快速了解并处理您的问题,请提供以下基础信息:
面板、插件版本:

8.2
系统版本:

Ubuntu 22.04.4 LTS
问题描述:

当webhook中的param包含'%'时,webhook会404,比如:https://ip:24267/hook?access_key=xxx¶m=FCQddgq0%3D
相关截图(日志、错误):


使用道具 举报 只看该作者 回复
发表于 2024-6-30 17:03:08 | 显示全部楼层
https://ip:24267/hook?access_key=xxx&param=%
param就传入一个百分号,也会404
使用道具 举报 回复 支持 反对
发表于 2024-7-1 11:54:45 | 显示全部楼层
宝塔用户_hpmcii 发表于 2024-6-30 17:03
https://ip:24267/hook?access_key=xxx&param=%
param就传入一个百分号,也会404

您好,方便截图一下您的写是内容吗
使用道具 举报 回复 支持 反对
发表于 2024-7-10 22:58:22 | 显示全部楼层
我也遇到了,","逗号都会404

使用道具 举报 回复 支持 反对
发表于 2024-7-11 10:42:44 | 显示全部楼层
宝塔用户_ohgdgl 发表于 2024-7-10 22:58
我也遇到了,","逗号都会404

您好,您这边方便也发一下吗
使用道具 举报 回复 支持 反对
发表于 2024-7-11 11:08:19 | 显示全部楼层
运维技术阿闯 发表于 2024-7-11 10:42
您好,您这边方便也发一下吗

我重装了,没有404,但是同样参数包含特殊字符会返回{code:0}
安装环境:docker lnmp镜像
宝塔版本:7.9.4
webhook插件版本:2.5
宝塔配置:关闭面板SSL
样例URL:http://192.168.1.254:8889/hook?access_key=xxxx&param=username/password,update_path
上面样例出现了“,”导致
结果:{code:0}
其他特殊字符没有详细测试,但应该也是一样结果
使用道具 举报 回复 支持 反对
发表于 2024-7-11 11:10:12 | 显示全部楼层
运维技术阿闯 发表于 2024-7-11 10:42
您好,您这边方便也发一下吗

重装之前测试出现404结果的环境是,宝塔版本为8.2.0
使用道具 举报 回复 支持 反对
发表于 2024-7-11 15:50:41 | 显示全部楼层
宝塔用户_ohgdgl 发表于 2024-7-11 11:10
重装之前测试出现404结果的环境是,宝塔版本为8.2.0

您好,为何需要在网页中输入这个呢%
不应该是放在脚本里边的吗
IJ`IES@K@D4VQN4DH{BU0QB.png
使用道具 举报 回复 支持 反对
发表于 2024-7-11 16:05:31 | 显示全部楼层
运维技术阿闯 发表于 2024-7-11 15:50
您好,为何需要在网页中输入这个呢%
不应该是放在脚本里边的吗

因为每个GitLab仓库部署的用户名和路径都需要动态配置,太多仓库,我不想每个仓库都创建一个webhook,所以只能url请求时带上,而且webhook只能支持一个$1参数,那只能自己约定一个数据结构传输了
使用道具 举报 回复 支持 反对
发表于 2024-7-11 16:06:55 | 显示全部楼层
运维技术阿闯 发表于 2024-7-11 15:50
您好,为何需要在网页中输入这个呢%
不应该是放在脚本里边的吗

所以我建议还是能多参数或者json传参更好
使用道具 举报 回复 支持 反对
发表于 2024-7-11 16:21:10 | 显示全部楼层
宝塔用户_ohgdgl 发表于 2024-7-11 16:06
所以我建议还是能多参数或者json传参更好

暂时的话目前是需要在webhook中去写入的
使用道具 举报 回复 支持 反对
发表于 2024-7-13 18:42:01 | 显示全部楼层
本帖最后由 宝塔用户_ohgdgl 于 2024-7-13 18:46 编辑

我已经找到魔改方案,
==============!!!!!!!!!!注意!!!!!!!!!!!===============

官方代码是为了降低参数注入风险。修改代码前请自行了解其风险。
修改代码所引起的后果,本人概不负责。

==============!!!!!!!!!!注意!!!!!!!!!!!===============

打开路径
/www/server/panel/plugin/webhook/webhook_main.py

找到
if param:  # 风险检测
    if not re.search("^[\w\-\"\'\=\/.]+$", param):
        return public.returnMsg(False, "参数错误!param")


修改里面的正则("^[\w\-\"\'\=\/.]+$")到符合自己需求即可,又或者直接注释掉这段代码。然后重载面板服务即可。
使用道具 举报 回复 支持 反对
发表于 2024-7-15 10:30:00 | 显示全部楼层
宝塔用户_ohgdgl 发表于 2024-7-13 18:42
我已经找到魔改方案,

打开路径

您好,修改代码请谨慎,您这边可以了就好,这边就闭贴了,祝您生活愉快
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表