一个django附加模块,它允许用有关哪些字段包含敏感信息的信息来修饰模型,以及一个相关的管理命令,该命令创建一个脚本来删除该信息。
django-scrub-pii的Python项目详细描述
一个Django附加组件,它允许用有关哪些字段包含敏感信息的信息修饰模型,以及一个关联的管理命令,该命令创建一个脚本来删除该信息。
。图片::https://travis-ci.org/matthewwilkes/django-scrub-pii.svg?branch=master
:目标:https://travis ci.org/matthewwilkes/django scrub-pii
…图片::https://covertalls.io/repos/github/matthewwilkes/django-scrub-pii/badge.svg?branch=master
:目标:https://covertalls.io/github/matthewwilkes/django-scrub-pii?branch=master
install
==
::
$pip install django scrub pii
usage
==
将scrubpii添加到设置文件:
。代码::python
installed_apps=(
…,
…,
…,
‘scrubpii’,
)
由于meta类中的字段是固定的,因此需要修补django以允许新字段。为了确保隔离并在将来发生兼容性问题时发出警告,可以通过在上下文管理器中定义模型来实现:
。代码::来自scrubpii导入的python
allow_sensitive_fields
with allow_sensitive_fields():
class person(models.model):
first_name=models.charfield(max_length=30)
last_name=models.charfield(max_length=30)
出生日期=models.datefield()
email=models.emailfield()
def\uUnicode(self):
return"{0}{1}"。格式(self.first\u name,self.last\u name)
class meta:
敏感字段={last\u name,'first\u name',"email"、"Date_of_birth"}
这可以通过将敏感模型分离到一个新文件中来轻松实现,因此:
……代码::python
from django.db import models
from scrubpii import allow_sensitive_fields
with allow_sensitive_fields():
from.sensitive_models import*
代码::来自django.db导入模型的python
=models.datefield()
email=models.emailfield()
def统一码(self):
return"{0}{1}"。format(self.first戋name,self.last戋name)
class meta:
敏感字段={last戋name',first戋name',email',,'出生日期'}
代码::python
scrub_pii_additional_fields={'auth.user':{'email',
'first_name',
'last_name',
'password',
'用户名',
},
'testapp.book':{'title',},
'testapp.example':{'foo',}
}
一旦定义了敏感字段,管理命令将生成用于匿名化数据库的sql语句。此应用程序不会直接匿名化数据库,以避免损坏实时数据的风险。
scrub.sql
建议的工作流为:
1。转储数据库
2。将转储重新加载到安全服务器上的临时数据库中(或复制SQL如果是sqlite,则为ite.db)
3.生成匿名脚本
4。对临时数据库运行匿名脚本
5。转储临时数据库
6。删除临时数据库
7。将临时数据库传输到不安全的服务器
欢迎添加其他数据库或字段的修补程序。
注意,sqlite下的匿名比postgresql下的更全面。例如,在sqlite下,IP地址将匿名为相同的值,而在postgres下,不同的IP将匿名为不同的值。
develop
==
::
$git clone django scrub pii
$cd django scrub pii
$make
==
:
=
=
=
=
=
=
=
=
=
29)添加textfield到可以清理的类型。
[matthewwilkes]
1.1.1(2016-01-29)
----
-修复1.1中的错误,这意味着模型设置中的其他敏感字段是"全部或无"事件。
[matthewwilkes]
1.1(2016-01-29)
———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————尤其是在博士后。有限的sqlite支持。
[matthew wilkes]
:::
保留所有权利。
允许在有或无
修改的源和二进制格式中重新分配和使用满足条件:
1。重新发布源代码必须保留上述版权
注意,此条件列表和以下免责声明。
2.以二进制形式重新分发必须复制上述版权
注意事项、本条件列表以及随分发提供的
文档和/或其他材料中的以下免责声明。
3.未经事先书面许可,作者的姓名不得用于认可或推广由本软件衍生的产品。
对适销性和特定用途适用性的默示保证不予否认。
在任何情况下,作者均不对任何直接、间接、附带、特殊、惩戒性或间接损害(包括但不限于,采购替代货物或服务;使用损失,
数据或利润;或营业中断),无论是何种原因造成的,基于任何
责任理论,无论是在合同中,严格责任,还是因使用
而产生的侵权行为
(包括疏忽或其他)。这个软件,即使被告知这种损坏的可能性。
。图片::https://travis-ci.org/matthewwilkes/django-scrub-pii.svg?branch=master
:目标:https://travis ci.org/matthewwilkes/django scrub-pii
…图片::https://covertalls.io/repos/github/matthewwilkes/django-scrub-pii/badge.svg?branch=master
:目标:https://covertalls.io/github/matthewwilkes/django-scrub-pii?branch=master
install
==
::
$pip install django scrub pii
usage
==
将scrubpii添加到设置文件:
。代码::python
installed_apps=(
…,
…,
…,
‘scrubpii’,
)
由于meta类中的字段是固定的,因此需要修补django以允许新字段。为了确保隔离并在将来发生兼容性问题时发出警告,可以通过在上下文管理器中定义模型来实现:
。代码::来自scrubpii导入的python
allow_sensitive_fields
with allow_sensitive_fields():
class person(models.model):
first_name=models.charfield(max_length=30)
last_name=models.charfield(max_length=30)
出生日期=models.datefield()
email=models.emailfield()
def\uUnicode(self):
return"{0}{1}"。格式(self.first\u name,self.last\u name)
class meta:
敏感字段={last\u name,'first\u name',"email"、"Date_of_birth"}
这可以通过将敏感模型分离到一个新文件中来轻松实现,因此:
……代码::python
from django.db import models
from scrubpii import allow_sensitive_fields
with allow_sensitive_fields():
from.sensitive_models import*
代码::来自django.db导入模型的python
=models.datefield()
email=models.emailfield()
def统一码(self):
return"{0}{1}"。format(self.first戋name,self.last戋name)
class meta:
敏感字段={last戋name',first戋name',email',,'出生日期'}
代码::python
scrub_pii_additional_fields={'auth.user':{'email',
'first_name',
'last_name',
'password',
'用户名',
},
'testapp.book':{'title',},
'testapp.example':{'foo',}
}
一旦定义了敏感字段,管理命令将生成用于匿名化数据库的sql语句。此应用程序不会直接匿名化数据库,以避免损坏实时数据的风险。
scrub.sql
建议的工作流为:
1。转储数据库
2。将转储重新加载到安全服务器上的临时数据库中(或复制SQL如果是sqlite,则为ite.db)
3.生成匿名脚本
4。对临时数据库运行匿名脚本
5。转储临时数据库
6。删除临时数据库
7。将临时数据库传输到不安全的服务器
欢迎添加其他数据库或字段的修补程序。
注意,sqlite下的匿名比postgresql下的更全面。例如,在sqlite下,IP地址将匿名为相同的值,而在postgres下,不同的IP将匿名为不同的值。
develop
==
::
$git clone django scrub pii
$cd django scrub pii
$make
==
:
=
=
=
=
=
=
=
=
=
29)添加textfield到可以清理的类型。
[matthewwilkes]
1.1.1(2016-01-29)
----
-修复1.1中的错误,这意味着模型设置中的其他敏感字段是"全部或无"事件。
[matthewwilkes]
1.1(2016-01-29)
———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————尤其是在博士后。有限的sqlite支持。
[matthew wilkes]
:::
允许在有或无
修改的源和二进制格式中重新分配和使用满足条件:
1。重新发布源代码必须保留上述版权
注意,此条件列表和以下免责声明。
2.以二进制形式重新分发必须复制上述版权
注意事项、本条件列表以及随分发提供的
文档和/或其他材料中的以下免责声明。
3.未经事先书面许可,作者的姓名不得用于认可或推广由本软件衍生的产品。
对适销性和特定用途适用性的默示保证不予否认。
在任何情况下,作者均不对任何直接、间接、附带、特殊、惩戒性或间接损害(包括但不限于,采购替代货物或服务;使用损失,
数据或利润;或营业中断),无论是何种原因造成的,基于任何
责任理论,无论是在合同中,严格责任,还是因使用
而产生的侵权行为
(包括疏忽或其他)。这个软件,即使被告知这种损坏的可能性。