当前位置: 首页 > news >正文

网站制作的公司哪家比较好网页作图软件

网站制作的公司哪家比较好,网页作图软件,wordpress子页面怎么修改密码,网站广告条幅怎么做动态的文章目录 要解决什么背景Jsqlparser安全系统难点目标 方法语法树遍历实现初始化第一轮第二轮第三轮 总结 要解决什么 企业进行软件开发、数据分析、数据查询时#xff0c;不可避免的涉及到数据安全的问题#xff0c;不同人员能看到的数据不同#xff0c;如何识别哪些敏感数… 文章目录 要解决什么背景Jsqlparser安全系统难点目标 方法语法树遍历实现初始化第一轮第二轮第三轮 总结 要解决什么 企业进行软件开发、数据分析、数据查询时不可避免的涉及到数据安全的问题不同人员能看到的数据不同如何识别哪些敏感数据被查询了或者被通过一些处理后隐性的被查询了是非常重要的。如手机号直接判断是否查询手机号是十分容易的但是如果查询时通过两次SQL查询一次查询前手机号前3位一次查询后8位则不易被发现数据也已泄露。本文介绍如何解决“在SQL使用中发现使用敏感数据泄露的行为”。 背景 Jsqlparser Jsqlparser是一个用Java编写的SQL解析器可以将SQL语句解析成语法树方便开发人员进行SQL语句的分析和操作。目前有很多类似的SQL解析器此类解析器只能将语句解析为语法树但是不能使上下层结构的业务逻辑关联在一起因而它只是一个工具如何判断最终结果中是否涉及敏感数据的逻辑还需要我们自己编写。 安全系统 目前有一些商用的数据安全系统包含数据脱敏功能开源的如archery。此类系统可以识别一定类型的SQL语句但是只包含简单结构像包含多层嵌套查询、关联查询、函数处理、casewhen语法时系统不能检测出。 难点 难点无法支持复杂的嵌套查询、无法支持函数处理后的数据、无法支持casewhen语法、无法支持union关键字等。 目标 搭建一种易于扩展的SQL分析架构能够方便的分析SQL语法树建立上下层嵌套语句间的关系使得SQL查询过程中能够便捷的支持各种语法识别出可能的敏感数据泄露行为。 方法 语法树遍历 使用Jsqlparser工具将SQL解析为语法树选择深度遍历优先算法。有两个重要概念 一是敏感数据的传染。 即在深度优先遍历时先找到最底层的子句根据from后的数据源找出本子句使用的敏感数据如果上层父语句使用此数据则对映数据被传染为敏感数据。 二是敏感数据表。 即维护一个敏感数据数据名称来源表来源字段的三元组集合。一开始集合中只包含数据库中的原始字段我们把敏感数据做一个事前的基础维护。然后在分析语法树的每层结构时不断增加这个集合的内容一旦某层的中间数据被传染则加入到集合中并记录来源。最后自下而上一层层追溯到顶端则可以发现全部被传染的敏感数据。 实现 // 数据三元组如下 public class Col {public String srcTable;// 真实来源表public String srcCol;// 真实来源列public String name;// 别名 } // 数据集合如下 private HashMapString, SetCol tableMaps new HashMap();以select a.pho,b.money, (select f.name from user_friend f where f.user_id a.id limit 1) friendName from (select pho from (select phone pho from user t1 where t1.create_time ‘2023-05-01’) t where t.create_time ‘2023-01-01’) a join bank b on a.id b.user_id;为例 初始化 首先初始化中间数据集合这些初始信息由其他系统认为设置或自动扫描识别得到如我们设置user表的phone是敏感信息则初始集合为Colname:phone,srcCol:phone,srcTable:user。 使用Jsqlparse等工具解析sql为语法树对语法树进行深度优先遍历,伪代码如下 public void visit(PlainSelect plainSelect) {//accept(this)递归本方法实现深度遍历PlainSelect sub findSub(plainSelect.getFromItem());sub.accept(this);ListJoin joins plainSelect.getJoins();for (Join join : joins) {PlainSelect s findSub(join.getRightItem());s.accept(this);}for (SelectItem selectItem : plainSelect.getSelectItems()) {PlainSelect sub findSub(selectItem);sub.accept(this);} }第一轮 第一轮处理如下子句根据集合得知phone为敏感数据pho虽然重新定义了别名但其被传染为敏感数据则集合中增加一条Colname:t.pho,srcCol:phone,srcTable:user (select phone pho from user t1 where t1.create_time ‘2023-05-01’) t 第二轮 第二轮处理如下子句根据上一轮集合结果t.pho为敏感数据,则a.pho也被传染为敏感数据则集合中增加一条Colname:a.pho,srcCol:phone,srcTable:user (select pho from (select phone pho from user t1 where t1.create_time ‘2023-05-01’) t where t.create_time ‘2023-01-01’) a 第三轮 第三轮处理如下子句根据上一轮集合结果a.pho为敏感数据,则最终发现a.pho是敏感数据依此类推。 select a.pho,b.money, (select f.name from user_friend f where f.user_id a.id limit 1) friendName from (select pho from (select phone pho from user t1 where t1.create_time ‘2023-05-01’) t where t.create_time ‘2023-01-01’) a join bank b on a.id b.user_id; 总结 1、便于逻辑分析每次只需要解决上下相邻层间的逻辑问题而不必跨层大大降低了难度。 2、逻辑结构清晰多层嵌套问题被切割成了两层语句的问题便于后期更复杂逻辑的扩展。
http://www.zqtcl.cn/news/710862/

相关文章:

  • 网站注册域名多少钱淘宝网商城
  • 做架构图的网站网站和网店的区别
  • 做红包网站简单个人网站设计
  • 新手学做网站pdf手wordpress修改搜索框
  • 做湲兔费网站视颍如何通过查询网站注册时间
  • 重庆cms建站模板南通网站建设推广优化
  • 合肥网站建设的公司新闻类网站如何做量化统计
  • 好用的在线地图网站十六局集团门户网
  • 网站开发数据库连接失败广州网站建站平台
  • 鄂尔多斯北京网站建设加盟网站建设的内容
  • 网站 被 抄袭不属于营销型网站的特点
  • 浙江英文网站建设互联网公司排名2021完整版
  • 完美代码的网站python开发工具
  • 餐饮网站开发参考文献网站建设500错误代码
  • 网站开发关键技术网站自动推广软件免费
  • 前端学习网站南阳东莞网站建设公司哪家好
  • 关于做网站的了解点wordpress小程序插曲
  • PHP网站开发与管理设计心得个人可以做聊天网站备案吗
  • 开公司可以在哪些网站做推广上海画册设计
  • 成都高新区规划建设局网站网络营销方式有哪些?举例说明
  • 国家企业信用公信系统入口seo服务
  • 个人网站网页模板室内装修设计自学软件
  • 什么网站可以做告白的网页网站模板套用湖南岚鸿
  • 膜结构网站推广怎么做怎样把网站上传到空间
  • 三维网站是怎么做的商城网站 运营
  • 程序员网站开发框架无锡网络公司网站建设app微信公众号平
  • 中关村网站建设网络营销策划书范文
  • 电商网站建设与课程设计科技网站模版
  • 建设部网站资质漳州最专业的网站建设公司
  • 网站建设需求和页面需求怎么提一个静态网站怎么做