跳转到主要内容

用于在Django模型中匿名化数据的应用程序。

项目描述

下载量: http://pypi.python.org/pypi/django-anonymizer

简介

此应用程序帮助您在用于Django项目开发的数据库中匿名化数据。

在开发中,通常使用与实际数据内容非常相似的数据库。问题是这可能导致在开发机器上拥有敏感客户数据的副本。此Django应用程序通过提供一种简单且可定制的匿名化模型数据的方法来帮助解决这个问题。

基本方法是遍历您指定的所有模型,并为所有指定的字段生成假数据。对模型的检查将生成一个匿名化器,该匿名化器将尝试为每个字段提供合理的假数据,让您可以根据自己的需求进行调整。

请注意,提供的方法可能无法提供完整的匿名性。即使您对客户的姓名和其他细节进行匿名化,也可能有足够的数据来识别他们。为了保留您应用程序中数据的特点结构,数据库中的记录关系没有改变,但这可能会使您面临可能不被您接受的信息泄露风险。此应用程序对于像“从数据库中删除所有真实电话号码”这样的简单策略应该是足够的。

对于开发/测试所需的大量测试数据的替代方法是重新填充数据库 - 请参阅django-poseurdjango-mockupsdjango-eadreddjango-autofixture。这种方法的不利之处在于,从相关模型的角度来看,数据结构可能不够现实。

用法

快速概述(有关更多信息,请参阅docs/或http://packages.python.org/django-anonymizer)。

  • 使用setup.py或pip/easy_install进行安装。

  • 将“anonymizer”添加到您的INSTALLED_APPS设置中。

  • 为您要匿名化的匿名者创建一些存根文件

    ./manage.py create_anonymizers app_name1 [app_name2...]

    这将在您指定的每个应用中创建一个名为anonymizers.py的文件。(它不会覆盖现有文件)。

  • 使用模块anonymizer.replacers或自定义函数编辑生成的anonymizers.py文件,根据需要调整或删除。

  • 运行匿名化器

    ./manage.py anonymize_data app_name1 [app_name2...]

    这将破坏性地更新所有您的数据。请确保您只在对数据库副本上执行此操作,自行承担风险,等等。

  • 注意:您的数据库在更新字段时可能实际上不会从磁盘删除更改后的数据。对于Postgresql,您需要执行VACUUM FULL来删除这些数据。

    即使如此,您的操作系统可能也不会从磁盘删除数据。正确删除这些痕迹是留给读者作为练习的 :-)

测试

要运行测试套件,请在此README所在的文件夹中执行以下操作

./manage.py test anonymizers

./manage.py test anonymizers.tests

版本0.5.1

  • 增加了对anonymizer.py文件的Unicode兼容性

  • 现在提供通用wheel

  • 增加了一个新的维护者

版本0.5

  • Python 3兼容性

版本0.4

  • 将“Anonymizer.attributes”改为要求列出每个字段。这解决了在更新模型时,但匿名器未更新的常见安全问题。

    不应匿名化的字段应指定特殊值“SKIP”作为“replacer”。

  • attributes现在必须是一个元组的列表,而不是一个字典。

版本0.3

  • 支持DecimalField

  • 改进了文档。

  • 增加了测试

版本0.2

  • 将attributes的格式从字典更改为2元组的列表(具有向后兼容性 - 旧格式已弃用)。

  • 修复了有时由于具有unique=True的字段在设置其他字段之前不可靠地设置,导致名称/用户名/电子邮件有时不会在相应的集中生成的小错误。

  • 增加了文档。

版本0.1.2

  • 将“varchar”字段更改为在运行时执行max_length检查。这破坏了函数的先前签名。

  • 引入了“replacers”模块和新快捷方式。

版本0.1.1

  • 删除了一些调试代码

  • 改进了检查中的SlugField和跳过字段的处理

版本0.1

初始发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-anonymizer-0.5.1.tar.gz (21.8 kB 查看哈希值)

上传时间

构建分发

django_anonymizer-0.5.1-py2.py3-none-any.whl (16.8 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持