You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制sklearn数据集下载并修复Creosote检测出的潜在漏洞?

限制sklearn自动下载数据集的方案
  • 代码层面禁用自动下载:调用sklearn的fetch_*系列数据集函数时,显式设置download_if_missing=False,本地无对应数据集时会直接抛出异常,不会触发自动下载。示例代码:
    from sklearn.datasets import fetch_california_housing
    # 禁止自动下载,本地无数据则报错
    data = fetch_california_housing(download_if_missing=False)
    
  • 全局配置禁用下载:在项目启动时添加全局配置代码,关闭所有数据集的自动下载功能:
    from sklearn import set_config
    # 全局禁用数据集自动下载
    set_config(download=False)
    
  • 预加载本地数据集:提前从可信渠道下载好所需数据集,放到指定目录后,设置环境变量SKLEARN_DATASET_HOME指向该目录,sklearn会优先读取本地文件,不再触发下载。
    Linux/macOS终端设置命令:
    export SKLEARN_DATASET_HOME="/path/to/your/local/datasets"
    
    Windows系统直接在系统环境变量中添加对应路径即可。
修复tarfile相关漏洞的具体步骤
  • 升级Python到安全版本:2022年的tarfile路径遍历漏洞已在Python的安全更新中修复,直接升级到以下版本即可:Python 3.8.16+、3.9.16+、3.10.9+、3.11.1+。
  • 升级scikit-learn到修复版本:scikit-learn针对该漏洞做了适配,升级到1.1.3及以上版本后,会在数据集下载和提取过程中添加路径校验,防止恶意tar包的路径遍历攻击。执行升级命令:
    pip install --upgrade scikit-learn>=1.1.3
    
  • 禁用不可信数据源:生产环境中绝对禁止从非官方、未验证的第三方源下载数据集,只使用scikit-learn官方提供的数据集,或提前验证过的本地数据集文件。
  • 扫描验证修复效果:用Creosote工具重新扫描虚拟环境,确认sklearn/datasets相关的漏洞提示已消失,确保修复生效。

内容的提问来源于stack exchange,提问作者Deepak Tatyaji Ahire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 11:35:29