一个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.未经事先书面许可,作者的姓名不得用于认可或推广由本软件衍生的产品。


对适销性和特定用途适用性的默示保证不予否认。
在任何情况下,作者均不对任何直接、间接、附带、特殊、惩戒性或间接损害(包括但不限于,采购替代货物或服务;使用损失,
数据或利润;或营业中断),无论是何种原因造成的,基于任何
责任理论,无论是在合同中,严格责任,还是因使用
而产生的侵权行为
(包括疏忽或其他)。这个软件,即使被告知这种损坏的可能性。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
html Java spring框架:应用程序上下文不会设置属性   java如何保持已通过电话登录的用户登录   基于LWJGL的二维矩形图像java旋转   java如何将这些图像图标调整到我的棋盘格?   java如何在play框架中禁用http端口?   使用spring4@Transactional时,java事务不起作用   java堆栈由编译器或OS/体系结构创建   用vbscript杀死Java进程   java如何使用ApacheSparkML和两列文本作为特性来训练逻辑回归?   Tomcat上的java ElasticSearch节点客户端无法读取请求数据   java访问SharedReference在Android中不起作用   java流式处理使用springdatamongodb的聚合操作的结果   电子邮件javax。邮政AuthenticationFailedException Java邮件