【发布时间】:2021-10-31 21:47:01
【问题描述】:
通过 Semgrep(静态代码验证器)运行我的 python 代码时,我收到以下警告。 请提出任何实际示例如何使用白名单来防止运行不受信任的代码或任何其他解决方案来避免此警告。我在网上搜索但找不到任何示例..
我在 import_module 的特定行下方收到警告
警告: importlib.import_module() 函数中不受信任的用户输入允许攻击者加载任意代码。避免 importlib.import_module() 中的动态值或使用白名单来防止运行不受信任的代码。
channel_module = import_module("src.main.core_prj.prj_" + config['subscription'].lower())
【问题讨论】:
-
您收到此警告是因为动态导入这样的模块存在真正的安全风险。你可以用一些答案here 来压制警告,但我建议重新考虑这段代码(如果可能的话)
-
感谢@OferSadan
标签: python python-3.x python-import whitelist semgrep