Python 中 eval 与 ast.literal_eval() 的选择

前言

很多语言中都有eval()函数,它能将字符串解析成对应编程语言的对象,这意味着它可以执行任意的代码,安全性上来说,具有很大的安全隐患

选择

相比于 eval() 函数,推荐使用 ast.literal_eval() 函数来解析字符串为 Python 对象。ast.literal_eval() 函数只会解析基本的 Python 数据类型,如字符串、字典、列表、布尔值和数字,并不会执行任意的代码
因此,建议使用以下代码来解析文件内容并将其转换为 Python 对象:

import ast

cookies = ast.literal_eval(content)

这样做可以提供更安全的解析方式,确保不会执行任意的代码,并只将文件内容解析为合法的 Python 数据类型。这在处理来自外部或不受信任的文件内容时尤为重要,以防止潜在的安全漏洞

猜你喜欢

转载自blog.csdn.net/e5pool/article/details/130896515