【问题标题】:How to prevent csv injection in django application [closed]如何防止 django 应用程序中的 csv 注入
【发布时间】:2020-01-03 10:28:45
【问题描述】:

我有一个具有文件上传功能的 Django 应用程序。我正在使用 Clamav 扫描文件中的病毒。我也想在我的应用程序中防止 CSV 注入。我找到了与它相关的 stackoverflow 链接,但没有帮助。请建议如何使用 ClamAV 在我的 Django 应用程序中防止 CSV 注入。

【问题讨论】:

  • 也许你要求在django应用程序中内置python解决方案,那么这个问题更集中?
  • 另外问一个单独的问题,ClamAV 是否​​可以检测带有潜在 CSV 注入单元的 CSV 文件。 (独立于 django)我个人只能提供 python 解决方案,但 ClamAV 专家可能会加入。不过,这个问题最好在 superuser.com 上提出
  • 关于您最近的编辑:您写道:请建议如何使用 ClamAV 在我的 Django 应用程序中实现 CSV 注入。您可能的意思是:请建议如何使用 ClamAV 在我的 Django 应用程序中实现对 CSV 注入的检测。
  • 问题已更新

标签: python django file-upload clamav csv-injection


【解决方案1】:

查看 CSV Injection 的定义(此链接可以在您的 SO 链接中找到) https://www.owasp.org/index.php/CSV_Injection

简而言之:

当使用 Microsoft Excel 或 LibreOffice Calc 等电子表格程序时 用于打开 CSV,任何以 '=' 开头的单元格都将被解释 由软件作为公式。可以使用恶意制作的公式 三个关键攻击:

您可以通过以下方式防止这种攻击:

这种攻击很难缓解,并且明确禁止 不少漏洞赏金计划。要修复它,请确保没有细胞 以下列任意字符开头:

Equals to ("=")
Plus ("+")
Minus ("-")
At ("@")

我不知道如何用 ClamAV 做到这一点,因为我不使用它, 但是您可以编写一个小的 python 函数来读取文件并确保没有单元格以上述任何字符开头。

【讨论】:

    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 2013-12-26
    • 2015-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    相关资源
    最近更新 更多