【已反馈】系统防火墙 提示错误,无法显示防火墙信
本帖最后由 清少 于 2024-1-2 18:25 编辑为了能快速了解并处理您的问题,请提供以下基础信息:面板、插件版本:PAN_VERSION: 8.0.4
系统版本:Ubuntu 22.04.3 LTS x86_64(Py3.7.8)
问题描述:打开 安全-系统防火墙 提示错误,无法显示防火墙信息:出错了,面板运行时发生错误! TypeError: string indices must be integers
相关截图(日志、错误):
REQUEST_DATE: 2023-12-31 23:21:22
PAN_VERSION: 8.0.4
OS_VERSION: Ubuntu 22.04.3 LTS x86_64(Py3.7.8)
REMOTE_ADDR: 119.123.206.212
REQUEST_URI: POST /safe/firewall/get_rules_list?
REQUEST_FORM: {'data': '{"limit":20,"p":1,"query":""}'}
USER_AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 Edg/120.0.0.0
Traceback (most recent call last):
File "/www/server/panel/BTPanel/__init__.py", line 2106, in publicObject
res = run_obj.run(toObject, defs, get)
File "/www/server/panel/BTPanel/__init__.py", line 2053, in run
result = getattr(toObject, get.action)(get)
File "/www/server/panel/class/panelSafeController.py", line 75, in model
result = PluginLoader.module_run(module_name,def_name,pdata)
File "/www/server/panel/class/safeModel/firewallModel.py", line 256, in get_rules_list
self.get_ufw_list()
File "/www/server/panel/class/safeModel/firewallModel.py", line 2301, in get_ufw_list
port = dt['port']
TypeError: string indices must be integers
我们两个一样的错误提示,现在站点列表里的网站都没有了。 您好 看起来像是获取防火墙端口列表时出错了
请执行ufw status这条命令截个图看看返回的是啥 河妖 发表于 2024-1-1 10:30
您好 看起来像是获取防火墙端口列表时出错了
请执行这条命令截个图看看返回的是啥 ...
命令运行后获取的列表信息如图
清少 发表于 2024-1-1 10:43
命令运行后获取的列表信息如图
您好,根据您提供的错误信息,看起来是在处理防火墙规则列表时出现了问题。具体来说,错误发生在 firewallModel.py 文件的 get_ufw_list 方法中,因为在 dt['port'] 中,dt 是一个字符串而不是一个字典,导致无法通过字符串索引来获取端口信息。
要解决这个问题,您需要检查 get_ufw_list 方法中的数据处理部分,确保处理得到的数据是一个字典而不是字符串。可能需要查看代码的其他部分,特别是涉及到数据处理和格式化的地方,以确保数据按照预期被处理和传递。
另外,要注意确保在处理数据时,特别是从外部接收到的数据时,进行类型检查和安全处理,以避免类似的问题发生。
页:
[1]