开源检测数据库是否明文存储工具——OpenDLP的使用教程

news2024/11/26 13:36:13

前言

        这些天Darren洋在做项目安全test调研的过程中,发现了一款非常不错的可自定义敏感数据类型的检测数据库是否明文存储工具。

        OpenDLP 是一个开源项目,提供用于数据丢失预防(DLP)的工具。它允许自定义扫描规则,包括对数据库中的敏感信息进行自动识别和扫描。尽管 OpenDLP 有一些限制,但作为开源解决方案,它提供了基本的敏感信息检测功能。

一、OpenDLP下载安装

开源社区链接传送带:

https://github.com/hitsz-ids/openDLP

opendlp官方文档:

openDLP — openDLP documentation

二、数据库连接

        1)利用python中的pymysql库连接python服务与数据库通信数据传输。

conn = pymysql.connect(
    host="localhost",
    port=3306,
    user='XXX',
    password='XXX',
    database='XXX',
    charset='utf8mb4'
)

        2)创建游标并使用sql语句查询数据库日志中的特定表的内容并打印输出。

# 创建游标
cursor = conn.cursor()
# sql语句书写
sql = "select * from TABLES where TABLE_SCHEMA='opendlp';"
# 执行sql
cursor.execute(sql)
# 将sql语句查询到的内容全都保存到data变量中
data = cursor.fetchall()
# 关闭数据库连接
cursor.close()
# 打印查询到的所有内容
print(data)

三、自定义test示例

(1)存储csv表格文件

        自己定义一个header标题行,再用下面把提取到的数据列表存储csv表格文件中。

        使用Python的上下文管理器 (with) 打开一个名为 "c.csv" (文件路径自定义即可)的文件。参数 "w+" 表示以读写模式打开文件。newline="" 参数用于控制行结束符,这里设置为空字符串,通常用于在不同操作系统之间确保一致性。

        创建了一个 CSV 写入对象,通常称为 "pen"。这个对象会将数据写入到文件 file 中。

        调用 CSV 写入对象的 writerow 方法,将一个标题行(或者叫做标头)写入文件。header 变量列表成为 CSV 文件的第一行。

with open("c.csv", "w+", newline="") as file:
    pen = csv.writer(file)
    pen.writerow(header)
    # 遍历data中的每一行,并且转换为列表格式 (默认 tuple)
    for i in data:
        a = list(i)
        pen.writerow(a)

(2)编码转换

        使用 pandas 库中的 read_csv 函数来读取CSV 文件。encoding="gbk" 参数指定了文件的字符编码,这是因为文件中包含了中文字符。如果不指定编码,可能会导致字符乱码或错误。

# 因为中文字符编码一般都是使用gbk,打开csv文件的时候增加encoding = "gbk",不然会字符乱码报错
data2 = pd.read_csv("c.csv", encoding="gbk")
print(data2.head())

with open('c.csv', 'r', encoding='gbk') as file:
    content = file.read()
with open('c.csv', 'w', encoding='utf-8') as output_file:
    output_file.write(content)

四、用户自定义敏感数据类型识别

        可根据opendlp的官方文档,进行用户自定义敏感数据类型识别配置。

openDLP — openDLP documentation

csv_table_path = 'c.csv'
regex_pattern_file = 'G:\openDLP-main\\tests\data\JSONwenjian.json'
threshold = {'email':1}

result = table_analyzer.analyze(csv_table_path, regex_pattern_file, threshold)
print(result)

五、内置敏感数据类型识别

        可根据opendlp的官方文档,进行内置敏感数据类型识别配置。

        下载的社区资源中内置有14种敏感数据类型,如银行卡号、身份证号码、手机号、邮箱等敏感数据类型。

csv_table_path = 'c.csv'   
result = table_analyzer.analyze(csv_table_path)
print(result)

六、运行结果

        完成上述,即可运行查看运行结果

七、Plus升级版源码

        遍历每个表格,为每个表格创建一个单独的CSV文件,并将数据写入相应的文件中。每个CSV文件的名称将基于表格的名称自动生成。这样你将会有10个(自定义)不同的CSV文件,每个文件包含一个表格的数据。

# 处理每个表格并生成单独的CSV文件
for table_name in tables:
    print(f"Table: {table_name}")

    # 获取表的字段名
    cursor.execute(f"DESCRIBE {table_name}")
    columns = [column[0] for column in cursor.fetchall()]
    print("Columns:", columns)

    # 查询表的数据
    cursor.execute(f"SELECT * FROM {table_name}")
    data = cursor.fetchall()

    # 创建单独的CSV文件以保存当前表格的数据
    file_name = f"{table_name}.csv"
    with codecs.open(file_name, "w+", "utf-8") as file:
        pen = csv.writer(file)

        # 将字段名写入CSV文件
        pen.writerow(columns)

        # 遍历data中的每一行,并转换为列表格式
        for row in data:
            a = list(row)
            pen.writerow(a)

如有参数疑问可参考该篇文章:

Open Source-Python sensitive data protection toolkit-糯米PHP

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170643.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、Hadoop初始化配置(final+ubuntu保姆级教程)

1、配置虚拟机 三台虚拟机,分别为node1、node2、node3,内存分别为4G、2G、2G,现存最好为(>40G),如下: 2、修改主机名 分别打开三台虚拟机,root用户输入一下命令: no…

openLayers--绘制多边形、获取视图的中心点、获取当前地图等级、设置地图等级

openLayers绘制多边形、获取视图中心点 前言效果图1、导入LineString2、创建添加多边形3、定义多变形样式4、获取当前视图的中心点5、获取当前视图等级6、设置地图等级 前言 上一篇文章在vue项目中绘制了openlayers绘制了地图和标记点,本篇文章讲解openlayers绘制多…

Java医院HIS系统源码

Java医院HIS系统源码 项目描述 该项目是用springbootlayuishiro写的医院管理系统,该系统的业务比较复杂,数据库一共有36张表。项目的视频业务参考文档,都在百度云盘中。可以先看看视频和参考文档。 运行环境 jdk8mysqlIntelliJ IDEAmaven…

Docker学习——③

文章目录 1、Docker Registry(镜像仓库)1.1 什么是 Docker Registry?1.2 镜像仓库分类1.3 镜像仓库工作机制1.4 常用的镜像仓库 2、镜像仓库命令3、镜像命令[部分]4、容器命令[部分]4.1 docker run4.2 docker ps 5、CentOS 搭建一个 nginx 服…

英伟达显卡深度学习训练微调环境安装清单

可以考虑 安装完操作系统后,安装更新及其他基础软件如gcc cmake, 再安装英伟达几件套(这里列出了四个) 如果自带的python版本在3.8或以上,再安装python常用库。 python版本不能太低,看你要跑的代码的需求了…

Leetcode-70 爬楼梯

递归公式方法会出现超时(时间复杂度大于On^2) 方法一:依然使用递归思想,由于递归过程中会出现反复计算问题,所以定义两个变量分别记录f(n-1)和f(n-2)的值,避免重复计算,减小时间复杂度 class …

mysql索引深度学习

索引是什么? 索引是一种用于加快查询和索引的数据结构,其本质上就是一种排序好的数据结构,就类似书的目录。 索引的底层有多种实现的结构:b树,b树,Hash,红黑树。InnoDB和MyISAM的索引都是通过…

【安全】Java幂等性校验解决重复点击(6种实现方式)

目录 一、简介1.1 什么是幂等?1.2 为什么需要幂等性?1.3 接口超时,应该如何处理?1.4 幂等性对系统的影响 二、Restful API 接口的幂等性三、实现方式3.1 数据库层面,主键/唯一索引冲突3.2 数据库层面,乐观锁…

Flink SQL 窗口聚合详解

1.滚动窗⼝(TUMBLE) **滚动窗⼝定义:**滚动窗⼝将每个元素指定给指定窗⼝⼤⼩的窗⼝,滚动窗⼝具有固定⼤⼩,且不重叠。 例如,指定⼀个⼤⼩为 5 分钟的滚动窗⼝,Flink 将每隔 5 分钟开启⼀个新…

Activiti7工作原理

Java Activiti是一个开源的工作流引擎,用于管理和执行业务流程。 它是基于BPMN 2.0标准的,提供了丰富的功能和灵活性。 Java Activiti的工作原理如下: 1.Java Activiti 流程建模 使用BPMN 2.0标准的图形化编辑器,可以创建和定义…

基于饥饿游戏算法的无人机航迹规划-附代码

基于饥饿游戏算法的无人机航迹规划 文章目录 基于饥饿游戏算法的无人机航迹规划1.饥饿游戏搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用饥饿游戏算法来优化无人机航迹规划。 …

Docker容器技术实战3

8、docker原生网络 Docker原生网络基于Linux桥接技术和虚拟网络接口,使用了Linux内核的网络功能。每个Docker容器都有自己的网络命名空间,这使得容器之间可以使用独立的IP地址,并隔离了容器的网络栈。 当创建一个Docker原生网络时&#xff…

Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題

Apache Flink 1.12.0 on Yarn(3.1.1) 所遇到的問題 新搭建的FLINK集群出现的问题汇总 1.新搭建的Flink集群和Hadoop集群无法正常启动Flink任务 查看这个提交任务的日志无法发现有用的错误信息。 进一步查看yarn日志: 发现只有JobManager的错误日志出现了如下的…

JOSEF约瑟 数显三相电压继电器 HJY-931A/D 导轨安装

名称:数字交流三相电压继电器型号:HJY-93系列品牌:JOSEF约瑟电压整定范围:10~450VAC额定电压:200、400VAC功率消耗:≤5W HJY系列 数字交流三相电压继电器 系列型号 HJY-931A/D数字式交流三相电压继电器&am…

吴恩达《机器学习》5-6:向量化

在深度学习和数值计算中,效率和性能是至关重要的。一个有效的方法是使用向量化技术,它可以显著提高计算速度,减少代码的复杂性。接下来将介绍向量化的概念以及如何在不同编程语言和工具中应用它,包括 Octave、MATLAB、Python、Num…

lvgl生成图片

网址:https://lvgl.io/tools/imageconverter CF_TRUE_COLOR:可以生成565,232,等多种形式的数组,选择Carray,会生成C数组。

2023.11.2事件纪念

然而造化又常常为庸人设计,以时间的流逝,来洗涤旧迹,仅以留下淡红的血色和微漠的悲哀。 回顾这次事件,最深的感触就是什么是团队的力量! 当我们看到希望快要成功的时候,大家洋溢出兴奋开心的表情,一起的欢声笑语;但看…

抖音群控软件的作用是什么?

随着智能手机的普及和社交媒体的兴起,抖音成为了人们日常生活中不可或缺的一部分,许多人都通过抖音平台分享自己的生活、展示才艺、开展商业活动等。 然而,要想在抖音上获得更多的关注和收益,需要投入大量的时间和精力&#xff0…

【C语言初学者周冲刺计划】3.2将一个数组中的值逆序重新存放

目录 1解题思路&#xff1a; 2代码 3运行代码如图&#xff1a; 4总结&#xff1a; 1解题思路&#xff1a; 首先学会如何利用循环输入位数和输入数值&#xff0c;然后再利用循环逆序即可 2代码 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int…

佳易王钟表铭表维修养护拍图留存查询手表保养跟踪记录系统软件下载

佳易王钟表铭表维修养护拍图留存查询手表保养跟踪记录系统软件下载 【软件试用版下载、软件资讯或技术支持服务可以点击文章最下方官网】 佳易王钟表养护维修管理系统V16.3&#xff0c;录入维修订单&#xff0c;维修进度查询&#xff0c;会员活动方案&#xff0c;打印服务报…