GrowingIO 数据安全实践

用户行为分析:自研埋点SDK与GrowingIO的混合采集方案 graph TD A[基础交互数据] -->|自研SDK| B(本地缓存) C[业务场景数据] -->|GrowingIO| D(云端分析) B --> E[定时批量上报] D --> F[实时行为看板] E --> G[数据仓库]字段映射:建立统一数据字典(如自研SDK的event_type=GrowingIO的event_code)异常处理:设置数据质量监控看板(完整性>99.5%)边缘计算:SDK端初步数据清洗(减少30%带宽)3.1 某金融App实施效果。 阅读详情

什么是数据安全

根据《中华人民共和国数据安全法》中第三条,给出了数据安全的定义,是指通过采取必要措施,确保数据处于有效保护和合法利用的状态,以及具备保障持续安全状态的能力。

为什么企业要做数据安全

在互联网盛行的今天,不法分子可以通过网络攻击,网络欺骗等手段窃取用户的个人信息甚至企业的机密信息。而且在拿到部分用户信息后就可以唯一的锁定具体某一个人,因此数据的保密显得格外重要。

GrowingIO 数据安全落地

为了保证客户数据的安全性, GrowingIO 通过构建一个安全的软件运行时与数据静态存储加密来提高数据生产安全性。下面我们将详细介绍数据安全落地的过程。

软件运行安全

软件运行安全也就是企业的系统运行安全,这主要包含两个方面: 数据逻辑隔离:系统通过用户的权限与角色,给出专有的数据操作集合。 KMS秘钥管理:系统所依赖的数据库,中间件不会因为秘钥的泄露而造成数据泄露。

数据逻辑隔离

数据逻辑隔离主要是对平台上操作的用户进行身份,角色,权限的认证。 认证流程:

所有平台的用户通过RBAC 权限模型分配不同的角色和权限。只有拥有对应角色权限的用户才能查看或进行对应的操作。

KMS 秘钥管理

KMS 即(key manage system)秘钥管理系统。目前亚马逊云和阿里云等云产品都有自己的解决方案。KMS 支持多种类型的的数据库,中间件,以及应用秘钥管理等功能。使用KMS 之后所有数据库,中间件等的用户名,密码对产研均不可见,应用静态数据加密对应的秘钥也不可见。 目前支持数据库和中间件以及系统秘钥:

【交互流程】

【示例展示】

以亚马逊云(AWS)为例:

应用配置

kms:
  enabled: false
  aws:
      region: ""
      access_key_id: ""
      secret_access_key: ""
#应用中添加
spring:
  redis:
    kms-key: "test/json/redis"
  datasource:
    kms-key: "test/postgresql/accounts"

运行初始化

示例以postgresql 数据库HikariCP 连接池为例:

@Bean
@ConditionalOnProperty(value = "kms.enabled",havingValue = "true")
public HikariDataSource dataSource(DataSourceProperties properties, KmsProperties kms,Configs configs) {
      SecretsManagerClient client = SecretsManagerClientBuilder.build(kms.getRegion(),kms.getAwsAccessKeyId(),kms.getAwsSecretAccessKey());
      AwsSecretProvider secretProvider = new AwsSecretProvider(client);
      String secret;
      try{
          secret = secretProvider.getSecret(configs.getDataSourceKmsKey());
          //secret是json格式的链接信息
          final HashMap<String,String> map = Jackson.readValue(secret, HashMap.class);
          String url = String.format("jdbc:postgresql://%s:%s/%s?useUnicode=true&useSSL=false&characterEncoding=utf8",map.get("host"),map.get("port"),map.get("dbname"));
          properties.setUrl(url);
          properties.setUsername(map.get("username"));
          properties.setPassword(map.get("password"));
      }catch (Exception e) {
          log.error("kms database error",e);
      }
      HikariDataSource dataSource = properties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
      if (StringUtils.hasText(properties.getName())) {
          dataSource.setPoolName(properties.getName());
      }
      return dataSource;
  }

在实际开发中用到的任何数据库,中间件都可以通过KMS 来管理对应的用户名,密码等敏感信息。

静态存储安全

PII 管理

【什么是PII】

PII 即个人身份信息 (Personally identifiable information) 是任何可能识别特定个人的数据。任何可用于将一个人与另一个人区分开来并可用于对以前匿名数据进行去匿名化的信息都可以被视为 PII。 PII 可以单独使用或与其他相关数据一起使用来识别个人,并且包含可以唯一识别个人的直接标识符(例如护照信息)或准标识符(例如种族),可以与其他准标识符结合使用标识符,如出生日期,以成功识别个人。

【PII 意义】

保护 PII 对于个人隐私、数据隐私、数据保护、信息隐私和信息安全至关重要。仅凭个人信息的一小部分,窃贼就可以以该人的名义创建虚假账户、产生债务、伪造护照或将个人身份出售给犯罪分子。随着个人的个人数据每天被记录、跟踪和使用——例如在使用指纹的生物识别扫描和用于解锁设备的面部识别系统中——保护个人身份和他们独有的任何识别信息变得越来越重要。

【PII 加解密】

PII 加密: 对于所有入库的用户敏感数据使用加密算法进行加密。 PII 解密:普通用户只能查看加密的密文数据,对于有业务需要的通过授权可以查看明文数据。

GrowingIO 默认选择AES(AES/CBC/PKCS5Padding) 算法 ,采用256长度的秘钥来作为PII 数据加密的实现。

执行流程

数据加密

数据解密

示例展示

PII 可以从配置中心或KMS 中来获取加解密需要的秘钥数据。

秘钥获取:

// KMS 方式
SecretsManagerClient client = SecretsManagerClientBuilder.build(kms.getRegion(),kms.getAwsAccessKeyId(),kms.getAwsSecretAccessKey());
AwsSecretProvider secretProvider = new AwsSecretProvider(client);
String secret = secretProvider.getSecret("test/pii/json");
//secret是json格式的链接信息
final HashMap<String,String> map = Jackson.readValue(secret, HashMap.class);

String algorithmIv = map.getOrElse("algorithm_iv", "");
// 向量
String iv = DatatypeConverter.parseHexBinary(algorithmIv);
// 秘钥
String encryptionKey = DatatypeConverter.parseHexBinary(map("encryption_key"));
String decryptionKey = DatatypeConverter.parseHexBinary(map("decryption_key"));

// 配置中心方式
// 向量
String iv = Hex.decodeHex(Configs.Encry.configCenterIv);
// 秘钥
String secret = Hex.decodeHex(Configs.Encry.configCenterSecret);

执行加密或者解密操作:

通过PII 进行数据处理后,数据库中敏感数据全为加密存储。页面渲染依据用户权限判断是否加密或者解密展示。

数据存储与渲染

数据库数据:

只有管理员登录后渲染解密后的数据:

常见问题

一、向量IV 的支持

在AES 加密算法中:AES_ECB_PKCS5Padding 不支持向量,AES_CBC_PKCS5Padding支持向量且安全性更高。如果原来已经有用到AES 算法要考虑兼容性。

二、Base 64 编码带来的问题

现象:如果加密的字符串比较长,加密后的密文将长度超过76时,密文中会被加入一个换行符,导致后续按行解析异常。

在JDK1.8 之后Base64 工具类移到了java.util 包中,为了向低版本的JDK 兼容,Base64 中 MimeEncode,采用的方式:

private static final int MIMELINEMAX = 76;
private static final byte[] CRLF = new byte[] {'\r', '\n'};
static final Encoder RFC2045 = new Encoder(false, CRLF, MIMELINEMAX, true);

也就是说在加密串的长度超过76时会加上 '\r' 或者 '\n',这就导致如果按行进行数据的某些操作将会发生致命错误。所以推荐使用Base64中Encode的实现:

static final Encoder RFC4648 = new Encoder(false, null, -1, true);
static final Encoder RFC4648_URLSAFE = new Encoder(true, null, -1, true);

这样不管加密后的字符串长度有多长都不会发生换行的问题。

参考JDK 源码和秘钥标准:

RFC 4648 http://www.ietf.org/rfc/rfc4648.txt

RFC 2045 http://www.ietf.org/rfc/rfc2045.txt

 

GrowingIO面试题 今天面了一家专门做数据的公司GrowingIO,是一个数据总监面试的我,上来先给了一张笔试题,如下: 然后让我20分钟之内用代码给他手写出来,嗯,我果然没写出来,因为代码太长而时间有点短,就大概写了下思路,主要就是按照用户id和位置id进行分组,然后是一组的判断时间是否连续,不是一组的直接输出,等等巴拉巴拉一大堆扯,以下就开始进入挖坑环节了: 1.项目中你主要做的是哪块?是你独立完成的吗?... 阅读详情

相关推荐

Python—调用GrowingIO平台接口下载CSV数据

import requests import gzip import os os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' requests.packages.urllib3.disable_warnings() token = "Authorization" ai = "项目ID" #项目ID minutes = 5 #下载链接过期时间(分钟) export_type = "day" #导出任务类型,系统目前支持小时.

一克拉的小蚂蚁的博客 760

GrowingIO是什么?如何将GrowingIO数据导入其他系统

GrowingIO是什么?如何将GrowingIO数据导入其他系统

part210的博客 599

友盟+、GrowingIO和神策数据 对比

属于大数据的基础设施了,可以做数据驱动技术,千人千面的优化。GrowingIO,这个非常适合项目早期,团队内没人懂这个东西,看完增长黑客就想上手。这个真的是对比过的,我们小作坊的员工是能学会GrowingIO的,可以数据驱动运营。growingio也提供清单级数据的导出服务,不过另外收费,开通之后可以提供过去15天的清单级数据。所以说,看你接给谁用,如果是做开发,想要做大数据驱动,神策更合适。使用要求:操作上,涉及数据集、表的关联、看板等多个需要用户操作的环节,对应数据处理过程。适合给老板看个总和。

TURING.DT 4070

为什么要加密所有个人身份信息(PII)

许多批评家指出,阿什利·麦迪逊(Ashley Madison)应该已经加密了所有个人身份信息(PII)。 该数据库包含敏感信息,如果该信息被发布,将会对用户造成伤害。 我们可能不参与基于不忠行为的约会网站,至少不是作为开发者。 但是,在发生违规之后,我们的业务性质并不重要–如果涉及财务信息,则需要通知用户,提供信用监控,面临诉讼,增加PCI-DSS符合性检查的成本等。您需要咨询律师,但我...

danpu0978的博客 1986

富士SC2022,C325,C328打印机扫描到网络详细教程

富士打印机SC2022,C328,C325等型号扫描到电脑教程

weixin_41926602的博客 1万+

loadStop的原因导致的SSUSP

Total内存值是可用来调度的可用内存,当前可用内存为 0M。 loadSched和loadStop的阈值是根据 Total 内存和节点内存来做限制的。 loadStop 50G,现在有大量作业SSUSP,说明之前某个时间点该节点内存可能有低于50G的时候,导致作业SSUSP,具体是否是这个原因引起的需要用 bjobs -l JobID 看下作业的详细信息。 如果是loadStop的原因导致的 SSUSP,根据loadStop设置的阈值,Total 值高于loadStop值后,将逐步恢复挂起的作业

Blueberry521的博客 666

GrowingIO

https://blog.growingio.com/posts/esoterica_2?utm_source=zhihu&utm_medium=zhuanlan&utm_campaign=p21864815&utm_content=wu-mai-dian&utm_term=data-analyse

z69183787的专栏 2483

戴尔G3/AWCC用户必看:揪出WMI Provider Host疯狂占用的元凶,附5.4.35旧版回退保姆级教程

本文针对戴尔G3/AWCC用户遇到的WMI Provider Host异常占用问题,提供了详细的诊断方法和解决方案。通过分析AWCC 5.5.14.0版本的资源占用问题,指导用户回退到稳定版AWCC 5.4.35,并附上保姆级教程和预防措施,帮助用户彻底解决系统卡顿问题。

weixin_30892037的博客 561

GrowingIO 响应式编程探索和实践

作者:林生生,GrowingIO 运营产品线研发经理,主要负责 GrowingIO 智能运营产品线研发管理工作。 背景 GrowingIO 在 2018 年初推出了基于底层数据能力的智能运营平台,结合精准的用户分群,数据采集以及多种运营方式,帮助企业客户用数据驱动用户运营,随时验证假设,助力产品增长。产品有以下特点: 支持多种触达用户的渠道 :站内:弹窗、资源位,站外:Push、短信、Webhook。 多平台支持,弹窗支持:App、Web、H5 和小程序。 轻松建立数据运营的闭环。 下图是运营平台站外.

GrowingIO 基于 BitMap 的海量数据分析 556

STM32学习笔记【江科协】【4-2】OLED显示屏

可以注意到接电源的GND和VCC同时和PB6、PB7号口连接,我们可以直接不初始化这两个引脚解决,因为STM32的引脚上电后,如果不初始化,默认是浮空输入的模式,在这个模式下,引脚不会输出电平,所以不会有什么影响,或者直接给PB6口输出低电平,PB7口输出高电平,用GPIO口直接给OLED供电,这个也是没问题的,因为OLED的功率很小这个也是可以驱动的,不过用GPIO口供电不是很规范,实际项目还是用电源供电。然后点击这里放大镜里面带d的图标,进入调试模式,这个界面里,

m0_74651303的博客 1595

ROST_CM6软件之词频分析、社会网络和语义网络分析、情感分析

简介 ROST CM 6是武汉大学沈阳教授研发编码的国内目前唯一的以辅助人文社会科学研究的大型免费社会计算平台。该软件可以实现微博分析、聊天分析、全网分析、网站分析、浏览分析、分词、词频统计、英文词频统计、流量分析、聚类分析等一系列文本分析。 社会网络和语义网络分析(S) 数据 注意,保存时编码要为ANSI 所以这里需要转换一下 准备自定义表与停词表 例如 同时,点击快速分析后,将会弹出网络图 对网络图进行设置 对布局进行设置 对节点、边进行设置 最终效果图 修改 情感分析

积一时之步,臻千里之遥程 9万+

GrowingIO 数据采集 iOS SDK 测试实践

作者:吕雨强 GrowingIO iOS 测试工程师,主要负责iOS SDK 功能测试、自动化测试 。 GrowingIO 是基于用户行为数据的增长平台,精准采集用户行为数据是公司业务的基石,只有及时、准确、可靠的采集到数据,才能支撑上层的数据分析,用户画像,运营等业务,所以公司一直非常注重数据采集 SDK(Software Development Kit) 的质量保证工作。 为了满足客户的各种业务与技术的需求,GrowingIO 提供了 Web、Android、 iOS、Hybrid、各种小程序(微信、支

GrowingIO 基于 BitMap 的海量数据分析 1694

015、PCIE带宽计算:理论vs实际——调试手记

最近在调一块图像采集卡,主控抱怨数据吞吐量上不去。规格书上写着PCIE 3.0 x4,理论带宽接近4GB/s,实际测试却卡在2.5GB/s左右。硬件同事拍胸脯说链路训练正常,软件同事咬定DMA配置没问题——这种场景是不是很熟悉?

z534437748的博客 880

GrowingIO Terraform 实践

为满足 GrowingIO 客户多样性的需求,在公有云设施上使用 Terraform 作资源管理。采取 Terrform 具有以下相关优势:

GrowingIO 基于 BitMap 的海量数据分析 906

Python 爬虫实战:爬取万方数据文献信息

本文介绍了基于Python爬虫技术合规获取万方数据文献信息的方法。通过分析万方数据的请求机制与反爬策略,采用requests库结合Session维持合法会话,实现了文献标题、摘要、作者等核心元数据的提取。文章详细讲解了Token验证、动态请求构造、JSON数据解析等关键技术,并提供了完整可运行代码。同时强调严格遵守《万方数据知识服务平台用户协议》,控制请求频率,仅限学术研究使用。该方案为万方数据文献信息获取提供了标准化解决方案,支持数据清洗、结构化存储及后续分析应用。

2503_91057718的博客 2134

如何通过conda安装HyPhy教程

本文介绍了在Ubuntu系统上通过conda安装分子进化分析工具HyPhy的详细步骤。首先创建conda环境并指定Python 3.8版本,然后通过bioconda通道安装HyPhy软件包。安装完成后可通过conda list命令验证安装。文中还特别指出可能遇到的libcrypto.so.1.1共享库缺失错误,并提供了解决方案的参考链接。该教程配有安装过程截图,帮助用户直观了解操作流程和验证安装结果。

猿小白的博客 8260

Spark多数据源计算实践及其在GrowingIO的实践

本文作者:田毅,目前在数据分析服务公司GrowingIO数据平台部门工作,Spark社区的Contributor,北京Spark Meetup组织者,2010年开始在电信领域实践应用hadoop,2013年开始关注Spark,从Shark开始向社区贡献代码。目前主要的研究方向是使用Spark搭建企业级的数据计算分析平台。 责任编辑:仲浩(zhonghao@youkuaiyun.com) 本文...

zhong930的博客 1762

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

GrowingIO 智能运营产品微前端实践

作者:俞展弘 GrowingIO 前端开发工程师,主要负责智能运营团队前端开发、gio-design 开发 引言 GrowingIO 智能运营产品,是 GrowingIO 为客户运营团队提供的一站式、精细化运营管理与数据分析平台。 近期,GrowingIO 智能运营产品团队需要将站内触点等运营功能从 SaaS 平台移植到增长平台上,以支持私有化部署(On-Premise,简称 OP)方案在客户环境中的进行,以此为背景,GrowingIO 运营前端团队在微前端的实践上走了自己小小的一步。 1. 什么是微前.

GrowingIO 基于 BitMap 的海量数据分析 593

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

GrowingIO iOS Autotracker 使用教程

GrowingIO iOS Autotracker 使用教程 1. 项目介绍 GrowingIO Autotracker 是一个用于 iOS 平台的自动用户行为事件采集 SDK。它能够自动采集基本的用户行为事件,如访问和行为数据,并支持代码埋点、无埋点、可视化圈选、热图等功能。该 SDK 旨在帮助开发者更高效地收集和分析用户行为数据,从而优化产品设计和提升用户体验。 2. 项目快速启动 2.1 安...

gitblog_00060的博客 1205

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

GrowingIO 增长平台产研项目管理实践

前言 项目是公司和组织的战略目标落地的一种非常重要的组织方式,项目管理的设计会对产品的生产和过程产出产生重要的影响。 Jira 是一款功能强大、可灵活配置的项目管理工具,能够满足不同规模公司的项目管理需求。 GrowingIO 从 2018 年引入 Jira Cloud 产品及服务,主要用于产研团队的项目管理,本文尝试从工作、人员、时间这几个方面介绍 GrowingIO 增长平台产研部门在项目管理设计上的选择,以及使用 Jira 这款项目管理工具进行的一些实践。 项目管理 项目的分类 ..

GrowingIO 基于 BitMap 的海量数据分析 465

GrowingIO 微服务 SaaS 与私有部署运行实践

GrowingIO 作为国内领先的数据运营解决方案供应商,为上千家企业提供基于用户行为的增长解决方案。 为满足企业的不同侧重与需求,GrowingIO 支持私有化和 SaaS 两种部署方式。两种部署方式的内容架构与交互设计不同,但相同的是产品底层逻辑,以及数据中心、用户库、产品分析、智能运营等产品线。 这些产品线在研发环境中,被设计为多个相互独立的微服务。为避免研发资源浪费,GrowingIO 需要确保同一批微服务可在不同部署模式的环境中均正常运行。 SaaS 与私有部署环境的差别 要解决这个问题,我们需要

GrowingIO 基于 BitMap 的海量数据分析 1292

GrowingIO 大数据多维分析自动化测试实践

作者:郝阔君 GrowingIO QA Lead,曾任职于中国惠普、奇虎 360。带领 QA 团队负责 GrowingIO 全产品线质量保证工作,目前专注于 DevOps 实践,帮助团队提升质量和效率。 1.问题背景 「事件分析」是 GrowingIO 为用户提供的一个非常灵活、强大的基于大数据平台的交互式多维分析工具,下面是一个简单的单指标、单维度、带过滤条件的事件分析图表: 如何对事件分析产生的图表进行测试呢?经过分析,我们发现一个事件分析图表包含指标、维度、目标用户、过滤条件、时间范围、粒度、排.

GrowingIO 基于 BitMap 的海量数据分析 1991

GrowingIO SaaS 产品 CI/CD 实践 (一)

作者:郝阔君 GrowingIO QA Leader,曾任职于中国惠普、奇虎 360。带领 QA 团队负责 GrowingIO 全产品线质量保证工作,目前专注于 DevOps 实践,帮助团队提升质量和效率。 本文主要描述 GrowingIO 过去在 SaaS 产品线上 CI/CD 的一些实践。由于历史原因公司使用的部分工具链比较小众,当前的 CI/CD 的流程还有很大的改进空间 ,但是一些实践经验还是有一定借鉴意义的。

GrowingIO 基于 BitMap 的海量数据分析 657

GrowingIO埋点(前端)

growingio平台埋点

MoXinXueWEB的博客 1757

网站 服务器 诸葛,GrowingIO

编者按:许多企业在选用运营数据分析工具时,不了解能在哪些常用渠道上使用,数据埋点方式表现如何,哪种好用,GrowingIO、诸葛IO、神策数据三家对比如何?企业服务汇在本文中将以GrowingIO、诸葛IO、神策数据为例解答上述的问题。计算机技术的成熟使数据分析被更多的企业应用。但企业如果自建数据分析体系需要有专业的技术团队支持,投入成本较高且成效慢。市面上出现了许多SaaS型的数据分析产品,可以...

weixin_30341571的博客 856

growingio平台埋点(web端)

一、集成SDK 请将以下的页面代码放置到需要分析的页面中的 和 标签之间,即可完成最新 Web JS SDK 页面代码的添加。 请注意使用 您创建Web应用所在项目的项目ID 替换代码中的 your projectId 、your dataSourceId、your host。 <!-- GrowingIO Analytics code version 2.1 --> <!-- Copyright 2015-2021 GrowingIO, Inc. More info availa

weixin_57246557的博客 3184
上一篇: GrowingIO Design 组件库搭建之 CI/CD
下一篇: ClickHouse用户资源隔离在 GrowingIO 的实践
GrowingIO_
博客等级 码龄8年 56粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值