- 博客(64)
- 资源 (7)
- 收藏
- 关注
原创 JAVA反序列化漏洞攻守之道
1、 什么是反序列化漏洞序列化就是把对象转成字节流,便于存储在文件、内存、数据中。如ObjectOutputStream中的writeObject()方法。反序列化是序列化的逆向过程,将字节流还原成对象。如ObjectInputStream类中readObject()方法。序列化和反序列是让Java对象脱离Java运行环境传输的一种手段,多用于数据传输和存储。在微服务和远程调用大流行的情形下,序列化和反序列化随处可见,漏洞防守也是重中之重。...
2022-05-19 11:53:40 1366
原创 CSRF漏洞攻守之道
1、 什么是CSRF漏洞跨站请求伪造(Cross-site request forgery,简称CSRF),攻击者利用正常用户的身份发起了HTTP请求,导致正常用户在不知情的情况下,对系统进行了业务操作。2、 CSRF漏洞的危害CSRF漏洞可能导致用户在不知情的情况下进行系统操作,对用户信息安全造成极大的隐患。3、 CSRF漏洞的防守方法CSRF本质是攻击者伪造身份将从其他站点发起正常请求从而达到攻击的目的。那么防守的本质就是校验请求发起来...
2022-05-17 11:41:07 301
原创 上传漏洞攻守之道
1、 什么是上传漏洞 上传漏洞是指应用系统在处理用户上传文件时,未对文件进行合法性验证,如文件名、扩展名等。同时如果上传文件的路径、文件名、扩展名成为用户可控数据,就会导致直接上传脚本或木马至系统服务器上,从而使攻击者控制服务器。2、 上传漏洞的危害攻击者上传脚本或木马文件至应用服务器,从而可直接控制服务器。3、 上传漏洞的防守方法上传漏洞的本质是攻击者将非法的文件上传至服务器从而达到攻击的目的。那么防守的本质就是校验上传文件的合法性及上传文...
2022-05-16 11:39:53 551
原创 越权类漏洞攻守之道
1、 什么是越权类漏洞越权类漏洞是指攻击者利用程序漏洞获取或操作超越用户本身权限所属的资源。2、 越权漏洞的类型水平越权:是指用户操作或查询服务端数据时,服务端未校验数据是否归属于请求用户。使得攻击者可以操作其他用户数据。简单来讲,就是同级别权限的用户访问到其他用户的资源。垂直越权:垂直越权又称为权限提升,主要是由于系统权限控制不严谨,导致攻击者可以直接访问到管理界面或者绕过权限验证,达到提权的目的。简单来讲,就是低级别权限的用户访问高级别权限...
2022-05-12 15:50:42 2207
原创 SQL注入漏洞攻守之道
1、 什么是SQL注入漏洞SQL注入是指应用程序直接将用户输入的内容拼接到SQL语句中。由于用户输入的内容也是SQL中的一部分,攻击者可以注入自己定义的语句该院原SQL的逻辑。通过控制SQL语句,达到提权(获取数据库服务器系统权限)或拖库(查询数据库中任何数据)的目的。2、 SQL注入的类型布尔型注入:盲注的一种,指的是利⽤SQL语句“逻辑与(and)”操作,判断and两边的条件是否成⽴,SQL语句带⼊输⼊查询后判断返回内容(通常返回值仅有⾮空和空两种状态),类似...
2022-05-07 10:47:43 225
原创 XSS漏洞攻守之道
1.1 什么是XSS漏洞跨站脚本攻击(Cross Site Script,为了不和css混淆,故将其缩写为XSS)通常发生在客户端,攻击者在Web页面中插入恶意的JavaScript代码(包括VBScript和ActionScript代码等),用户浏览此页面时,会执行这些恶意代码,从而使用户受到攻击。本质:是一种HTML的注入,恶意代码数据当成了HTML代码的一部分被执行。1.2 XSS的攻击形式DOM跨站攻击:攻击者在为规范JavaScript的HTML页面中插...
2022-04-28 16:43:34 2475
原创 浅谈Java类之万类之祖-Object
序java.lang包下的Object类是Java中最特殊的类,是万类之祖,所有的类的父类。总共包含12个方法。整体源码如下,public class Object { private static native void registerNatives(); static { registerNatives(); } public final native Class<?> getClass(); publ...
2021-08-22 15:29:31 189
原创 Lombok骚操作一
一、lombok原理lombok简介lombok官网地址:https://projectlombok.org/lombok原理二、lombok各注解详解 @Data @Value @Wither @Delegate @Builder @Constructors:用途:生成构造方法 @Getter:用途:生成get方法 @Setter:用途:生成set方法 @EqualsAndHashCode:用途:生成eq
2021-08-19 18:27:07 239
原创 华为matebook13 win10系统重置登录密码
背景在一个阳光明媚,居家隔离、无聊透顶的日子,突然matebook13笔记本无法识别指纹,然而登录密码、pin和找回密码的安全问题答案都忘记的情况下,开启了一下午的密码找回站。第一阶段:重试了所有的pin 4位的可能,pin被锁定N次;接着又实验了6位的可能。第二阶段:重试了所有密码可能,以失败告终第三阶段:重试了找回密码的安全问题的所有答案,然而并没有什么卵用。第...
2021-08-19 11:01:25 5135
原创 如何评估系统的性能?
一、前情极客精神是程序员永远的追求。程序员一直致力于自己的创造物在三高-高并发、高性能、高可用的路上越走越远。那么除了在开发过程中,遵循各种开发、设计、架构原理和规范外,如何评估一个线上系统的性能呢?下面从几个方面讲解性能指标,以记录近年所学。二、JVM性能指标GC次数:从JVM启动后执行Young GC或FullGC的次数GC总耗时:从JVM启动后执行Young GC或Full GC所消耗的时间。GC平均耗时:GC总耗时/GC次数堆内存:JVM运行时数据区域的堆空...
2021-08-13 22:05:16 1639
原创 情境领导Ⅱ
一、前言前段时间,在公司参加情境领导力的培训,收益良多,现总结如下。二、管理和领导明确的目标了解并理解各种变化(目标或工作变量、组织变量、领导变量、个人发展阶段)因人而异,因事而异的管理方式三、情境领导的理念情境领导Ⅱ不是你对部署做什么,而是你和部署一起做。作为领导重要的不是你在场时发生了什么;而是你不在场时发生了什么。四、情境领导者的核心技能诊断 分辨四个发展阶段的特点和需求 确定员工需要指导还是支持 灵活性灵活使用指导型和支持型领导行为
2020-12-06 20:55:47 408
原创 Hadoop入门试题
1、Mapreduce擅长那个领域的计算?A、离线批处理B、DAG计算C、流式计算D、实时计算2、关于Mapduce原理,下面说法错误的是?A、分为Map和Reduce两个阶段B、Map阶段由一系列Map任务组成C、Reduce阶段由一系列Reduce任务组成D、Map阶段和Reduce阶段没有任何依赖关系3、HDFS默认副本数是?A、1B、2C、3D、44、哪个不属于HDFS架构组成部分?A、NameNodeB、Secondary Nam
2020-09-20 17:24:59 3307 2
原创 浅析架构设计——架构之道学习笔记
什么是架构1、架构是将【组织】按照一定的【结构】进行组织【连接】起来2、组件:软件差分后的物理形态,它可是子系统、模块、应用服务或者是一个类。3、结构:是架构之后的轮廓,是组件组织后产出物。不同的软件系统会有不同的结构,这些结构是为了解决不同应用场景而设计。4、链接:把差分的组件有机组装出来,链接关系可以是JVM内部调用,架构设计的原则:1、合适原则:a、匹配业务发展所处的当前阶段b、充分结合业务实际的应用场景c、考虑业务近1年到2年的发展规模2、简单原则:大道.
2020-09-14 16:30:40 314
原创 Mysql(十二) — SQL优化仅仅是优化sql本身么?
一、背景近期对系统进行慢SQL优化,通过订阅Mysql慢SQL日志搜集到了一批慢SQL。其中有一条SQL很奇怪,表中已有索引,并且表数据量并不很大,查询效率很低。二、原因分析根本原因:sql参数入参为string类型,数据库表为bigint类型,类型不一致导致索引失效。三、解决办法将代码中的方法入参类型改为long。 由于系统是读写分离的,在此方法上使用读库。四、解决过程过程未完待续..........
2020-05-11 18:36:28 176
原创 大数据面试笔试题
1、HBase适合用的场景?答:成熟的数据分析主题,查询模式已经确立,并且不会轻易改变。传统给的关系型数据库已经无法承受负荷,高速插入,大量读取。适合海量的,但同时也使简单的查询条件(例如:key-value)。注:半结构化或非结构化数据:对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用HBase。当业务发展需要增加存储比如一个用户的email、phone、addre...
2020-03-08 23:29:39 310
原创 SpringCloud学习—Consul(服务发现组件)
环境搭建一、环境准备单机环境下的安装,windows/linux服务器均可。确保以下端口未被使用二、下载下载最新稳定版:https://www.consul.io/downloads.html 下载指定版本:https://releases.hashicorp.com/consul/三、安装&启动解压下载下来的安装包,进入consul目录下 执行以下命令即可....
2020-01-05 22:02:48 244
原创 SpringCloud学习—服务注册与发现
服务提供者服务的被调用方,即为其他微服务提供接口的微服务。服务消费者服务的调用方,即调用其他微服务接口的微服务。什么是服务发现?简单来说,就是让服务消费者总能找到服务提供者的机制。服务注册与发现的架构注册机制:确保新出现的微服务被维护到服务发现组件中。心跳机制:在固定的时间去连接组件中的微服务,确认微服务的状态(Status)是可用(up)还是宕机(down)...
2019-12-28 18:50:50 219
原创 SpringCloud学习—简介
SpringCloud是什么?SpringCloud是快速开发分布式应用的工具集。官网地址:https://spring.io/projects/spring-cloudSpringCloud的主要功能功能 描述 可用组件 Distributed/versioned/configuration 分布式/版本化的配置管理 Spring Cloud Config...
2019-12-22 15:59:32 236
原创 微服务学习-概念浅析
一、单体应用 单体架构 一个war包打天下的应用架构,即为单体应用。war包内包含所有的功能模块,架构图如下: 单体架构的优点: 单体架构结构简单,在项目初期能够很好的满足需求,而且开发测试运维非常方便。 单体架构的缺点 单体应用部署慢、部署频率低:随着项目的迭代和功能的增加,代码越来越多,构建和部署的时间也会相应的增加;每次功能的变更或缺陷修复都需要部署整个应...
2019-12-14 21:49:07 220
原创 三款Java性能测试的工具介绍(未完待续...)
一、JMHa、简介JMH,即Java Microbenchmark Harness,是专门用于代码微基准测试的工具套件。何谓Micro Benchmark呢?简单的来说就是基于方法层面的基准测试,精度可以达到微秒级。当你定位到热点方法,希望进一步优化方法性能的时候,就可以使用JMH对优化的结果进行量化的分析。b、场景想准确的知道某个方法需要执行多长时间,以及执行时间和输入之间的相关...
2019-12-08 20:44:22 480
原创 Idea启动Tomcat控制台输出中文乱码
一、环境OS :win10开发工具:IntelliJ IDEA 2019.1.3 x64Tomcat :apache-tomcat-8.5.47/apache-tomcat-9.0.27二、现象19-Nov-2019 20:14:20.058 淇℃伅 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina...
2019-11-20 17:44:56 671
原创 Redis【简介】
一、Redis是什么呢?简单的来说Redis是一个高性能缓存数据库,是一个开源的使用ANSI C语言编写,支持网络,可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。Redis安装的磁盘; Redis数据存储在内存二、Redis特性速度快 键值对的数据结构服务器 简单稳定 持久化 主从复制 高可用和分布式转移三、Redis特性速度快 ...
2019-11-10 18:11:15 176
原创 Idea下如何使用Lombok
一、准备环境在Idea安装lombok插件,如果不安装的话,跳过此步骤,则工程会报错的。在Idea中File→Setting→Plugins中,搜索lombok,点击install完成后重启idea即可,见图。二、maven引入lombok<!-- 在工程的pom.xml文件中引入lombok依赖--> <dependency> <groupId&...
2019-11-02 17:34:00 1282
原创 初识AI
什么是AIAI is the field that studies the synthesis and analysis of computational agents that act intelligently.AI are systems that think like humans ,act like hummans , think rationally, act ratio...
2019-09-22 20:21:35 277
原创 KNN算法
K近邻(KNN)算法最容易理解的算法.最容易实现的算法.KNN的核心思想简单的来说就是给定一个预测目标,接下来计算预测预测目标和所有样本之间的距离或者相似度,然后选择距离最近的前K个样本,然后通过这些样本来投票决策.不同的K值,会对预测产生不同的影响.实现一个KNN1、把一个物体表示成向量:这也叫做"特征工程",模型的输入一定是数量化的信息,我们需要把显示生活中的物体...
2019-09-15 09:41:19 1489
原创 Mybatis — 序章
一、mybatis是什么?ORM:对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。为什么需要ORM?在面向对象开发的过程中,如果仅仅通过JDBC来进行持久化和数据映射的话,开发人员将花费大量的精力于此,因此ORM框架应运而生。常用的ORM框架:Hiberna...
2019-09-08 13:34:41 252
原创 Zookeeper(一) — 简介
一、什么是Zookeeper?ZooKeeper致力于提供一个高性能、高可用,且具备严格的顺序访问控制能力的分布式协调服务,是雅虎公司创建,是Google的Chubby一个开源的实现,也是Hadoop和Hbase的重要组件。二、Zookeeper的设计目标简单的数据结构:zk提供了一个树形结构的数据存储结构,类似于文件系统,存储于内存;可以构建集群:为避免单点故障,3台以上的机器就...
2019-09-01 16:29:59 221
原创 Zookeeper(二) — 配置文件详解
一、ZK基本配置# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # ...
2019-08-24 22:26:15 353
原创 什么是分布式?
架构的演进过程1、业务简单、系统功能单一、访问量小的场景下:单节点web应用架构。2、业务和系统功能相对复杂、访问量较大的场景下:Nginx负载的多web节点集群架构。3、业务复杂、系统庞大、访问量巨大的场景下:分布式微服务架构。分布式架构的特点分布性对等性并发性缺乏全局时钟故障随时会发生分布式架构中存在的问题通信异常:通讯异常其实就是网络异常,网络...
2019-08-24 18:00:22 23313
原创 细说Idea那些骚操作
界面设置篇Ctrl + F4 :关闭当前tab页 Alt + 1: 把鼠标焦点定位到project视图里 Ctrl + Shift +←或→:左右移动project视图和代码区的分割线,前提是鼠标焦点定位在project视图内; Alt +F1 弹出select in视图,然后选择Project view中的project,回车,定位类在project的位置 Alt +V ,去掉Nav...
2019-08-18 23:11:13 2634
原创 Nginx学习笔记(一) — 初识
简介Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,专为性能优化而生,实现上非常注重效率。特性处理静态文件,索引文件自动索引 反向代理加速、负载均衡、容错 FastCGI,简单的负载均衡和容错 模块化的结构 支持SSL和TLSSNINginx在架构体系中的位置和作用网关:面向客户的总入口。 虚拟主机:为不同域名/ip/端口提...
2019-08-11 21:49:42 266
原创 滚动播报效果的实现
一、背景业务需求:在网站头部的logo和用户登录状态中间,滚动播报后台设置的通知内容。二、css实现效果代码<!DOCTYPE html><html lang="en"><head> <meta charset="GBK"> <meta name="viewport" content="width=...
2019-08-04 13:23:38 1895
原创 Tomcat初识
一、什么是Tomcat?Tomcat是一款开源的轻量级Web应用服务器,是一款优秀的Servlet容器实现。Tomcat版本对照 6.X 7.X 8.X 9.X JDK >=1.5 >=1.6 >=1.7 >=1.8 Servlet 2.5 3.0 3.1 4.0 JSP ...
2019-07-28 23:05:23 1705
原创 Idea导入Tomcat源码
一、源码准备Tomcat官网下载源码(点我下载),如图。二、Idea导入解压下载好的apache-tomcat-8.5.43-src.zip文件。 在解压好的目录中创建catalina-home目录,并将目录中的conf和webapps文件夹复制到catalina-home目录中。三、maven支持1、用Idea打开此目录,并添加maven支持。右键工程→Add Fra...
2019-07-20 18:05:40 5155
原创 MySQL(五) — 锁及事务
MySQL的锁Mysql不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。MySQL锁分类表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加...
2019-07-14 14:56:43 1225
原创 MySQL(八) — 执行计划(Explain)详解
目录执行计划执行计划的作用执行计划如何使用执行计划内容idselect_typetabletypepossible_keyskeykey_lenrefrowsextra执行计划执行计划的作用表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询执行计划如何使...
2019-07-07 23:13:04 1591
转载 Mysql(十一) — MySQL面试题整理
一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的...
2019-06-30 22:34:29 1228
原创 MySQL(四) — MySQL存储引擎
目录一、准备二、MyISAM三、InnoDB四、CSV五、Memory六、Archive六、Ferderated一、准备1、查看MySQL支持什么引擎。 mysql> show engines; +--------------------+---------+--------------+------+------------+ ...
2019-06-22 18:53:09 1819
原创 MySQL总结
一、MySQL简介二、MySQL(一) — Linux环境下MySQL单实例和多实例的安装三、MySQL(二) — MySQL数据类型四、MySQL 体系架构五、MySQL(四) — MySQL存储引擎六、MySQL(五) — 锁及事务七、MySQL优化八、MySQL(八) — 执行计划(Explain)详解九、MySQL(九) — MySQL常用命令十、MyS...
2019-06-22 17:28:05 1919 2
原创 MySQL(二) — MySQL数据类型
一、INT型类型 字节 最小值(有符号/无符号) 最大值(有符号/无符号) TINYINT 1 -128 / 0 127 / 255 SMALLINT 2 -32768 / 0 32767 /65535 MEDIUMINT 3 -838...
2019-06-22 17:25:41 1752
NFC标准技术规范文档
2013-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人