python - 出于组织目的使用仅具有静态方法的类?
问题描述
我为 MSSP 工作,我们处理的许多安全警报,尤其是新客户,都可以根据一些简单的 if-then 逻辑来处理,而无需占用分析师的时间进行研究。为了处理这些类型的警报,我正在构建一个带有一系列逻辑测试的基本 python 程序,以查看给定的警报是否属于“已知”类别并且可以自动处理。
我想要的格式是为我们为组织目的服务的每个客户提供一个单独的 python 文件,并且在每个文件中都有一系列条件,如果满足条件,则具有相应的操作。然后,管理脚本获取警报数据,通过相应客户端文件中的每个条件运行它,并在条件返回True
时将数据传递给相应的操作函数。所以我的问题是如何组织这个。
目前,在客户的文件中,我为每个“已知”条件都有一个类,具有两个@staticmethod
函数:condition() 和 action()。那么管理脚本的逻辑实际上是[伪代码]:
for class in client_file:
if class.condition(alert_data):
class.action(alert_data)
在组织上,我喜欢这个。每个客户都有一个文件,每个已知的要查找的东西都有一个类。我的犹豫是,我不确定这是“pythonic”还是一般犹太教。我使用@staticmethod
s 是因为我不需要这些类有多个实例,我只是喜欢将函数分组为类以实现逻辑相关性的组织能力,但它看起来仍然有点奇怪,我担心它会引起混乱。
所以我对社区的意见很感兴趣,这对于我的应用程序来说似乎是一种不错的组织方法,或者你对保持一切整洁的更好方法有什么建议吗?
示例类:
class HostIsWindows:
@staticmethod
def condition(alert_data):
if 'os_type' in alert and alert['os_type'] == 'windows':
return True
else:
return False
@staticmethod
def action(alert_data):
... do something ...
return "This is a result message."
解决方案
推荐阅读
- python - 在 chaquopy android studio 中导入 python 库的问题
- java - 是否可以在 RabbitMQ 中重试 unack 消息
- javascript - Discord.js 音乐机器人出现错误
- github - Github 操作:默认分支变量
- python - 如何使熊猫行处理更快?
- node.js - 在 web worker 中使用 nodejs ssh2
- javascript - 如何为数据表中的子行创建点击事件(按钮)
- angular - 根据 Azure Release Pipeline 中 angular.json 中的值“运行此作业”
- sql - sql中指定的授权
- python - 使用 Tensorflow 版本 1.14.0 进行自定义对象检测时出现 ImportError