使用 safe_load 函数可以保证 YAML 文件中的数据不被执行,但是无法对变量进行拼接,因为变量拼接需要执行。如果需要变量拼接,可以使用 load 函数,但是需要注意安全性问题,避免 YAML 文件中的恶意代码被执行。可以使用 yaml.safe_dump 函数将数据转换为 YAML 格式后再写入文件,避免 YAML 注入攻击。

例如:

import yaml

# 从 YAML 文件中读取数据
with open('config.yaml', 'r') as f:
    data = yaml.safe_load(f)

# 对变量进行拼接
name = 'John'
data['message'] = f'Hello, {name}!'

# 将数据转换为 YAML 格式并写入文件
with open('config.yaml', 'w') as f:
    yaml.safe_dump(data, f)
YAML 文件变量拼接与安全加载:使用 safe_load 和 safe_dump 的最佳实践

原文地址: https://www.cveoy.top/t/topic/nRRu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录