- 博客(66)
- 资源 (3)
- 收藏
- 关注
原创 什么是水坑攻击
水坑攻击是一种常见的网络攻击方式,攻击者会在受害者常常访问的网站或者APP上,例如论坛、微博、邮箱等,注入恶意代码或者投放恶意链接,当受害者访问这些网站或者APP时,恶意代码或者恶意链接就会利用各种漏洞,例如XSS、CSRF等,获取用户的敏感信息,例如用户名、密码、银行卡号等,从而实施盗窃或者诈骗等行为。水坑攻击的原理是在受害者经常访问的网站或者APP上设置陷阱,等待受害者上钩。攻击者通常会利用受害者经常访问的网站或者APP作为跳板,通过注入恶意代码或者投放恶意链接,等待受害者访问并点击,从而实施攻击。
2023-07-10 16:23:32
881
原创 什么是mysql的虚拟列以及应用实例
MySQL的虚拟列是一种新特性,可以在查询时直接使用虚拟列(代替视图) 存储虚拟列可以用作实例化缓存,以用于动态计算成本高昂的复杂条件。虚拟列可以在创建表时定义,并在查询时像普通列一样使用。虚拟列通常用于计算或汇总数据,例如计算总价、计算平均值等。定义MySQL虚拟列(generated-columns)是MySQL 5.7加入的新特性。从名字来讲,“生成的字段”,并不是主动插入的值。
2023-06-16 11:43:12
4776
原创 使用docker部署ELK实战
Elasticsearch是一个基于Lucene库的分布式搜索引擎和数据分析引擎,能够实现实时搜索和分析大规模的数据集,支持文本、数字、地理位置等多种类型的数据检索和分析。Elasticsearch是一个开源的、高度可扩展的平台,能够处理海量的数据,并支持分布式的数据存储和处理。Elasticsearch的主要特点包括:分布式搜索引擎:Elasticsearch能够对海量的数据进行快速的搜索和查询,并支持实时搜索。
2023-06-15 17:37:38
2455
原创 什么是java agent探针技术,以及如何使用
Java Agent探针技术是一种能够动态修改Java字节码的技术,常用于程序调试、热部署、性能诊断分析等场景。它通过在应用程序运行时动态加载代理程序(agent),获取应用程序的运行状态、性能指标、异常信息等数据,帮助开发人员诊断和解决问题。Java Agent探针可以捕获和分析程序运行时的错误和异常信息,以及检查线程是否阻塞等问题。它是一种Java字节码增强技术,允许在Java应用程序运行时动态地修改应用程序的字节码,以实现一些特定的功能。
2023-06-15 10:31:50
3330
原创 什么是CQRS
CQRS是一种与领域驱动设计(DDD)和事件溯源相关的架构模式。它是一种读写分离模式,旨在从业务上分离命令(Command,也就是写操作)和查询(Query,读操作)的行为。在CQRS中,通常将写入和读取操作分离开来,并使用不同的方法或API来实现。写入操作通常通过一个专门用于更改应用程序状态的命令路由来实现,而读取操作则通过一个专用于返回有关应用程序状态信息的查询路由来实现。CQRS还可以通过使用事件模型,实现系统的异步和解耦。在应用程序中实现CQRS可以最大限度地提高其性能、可缩放性和安全性。i。
2023-06-14 18:33:12
1638
原创 mock是什么?以及springboot中怎么使用mockMVC实现单元测试
Mock是一种测试模式,用于模拟或替代依赖项,以便测试程序的某些部分,而不是依赖于真实的外部系统或组件。在Mock模式中,我们使用一个虚拟的对象来代替真实的对象,以便我们可以控制它们的行为并验证我们的代码是否按预期工作。MockMVC是Spring框架提供的一种用于测试Spring MVC控制器的工具。它允许我们在测试过程中模拟HTTP请求和响应,并验证控制器的行为和输出。下面是一个简单的示例,展示了如何使用MockMVC测试Spring Boot中的控制器。在上面的示例中,我们使用了。
2023-06-12 10:31:29
1265
原创 什么是反弹shell
反弹Shell(Reverse Shell)是一种网络攻击技术,用于通过远程主机上的Shell(命令行终端)与攻击者建立连接,从而控制受攻击主机。攻击者通常在受攻击主机上以各种方式植入恶意代码(如后门程序),然后通过网络与该主机上运行的Shell建立反向连接,从而获得对该主机的完全控制权。反弹Shell技术通常是针对目标主机的防火墙和安全措施进行攻击。攻击者首先在目标主机上放置一个能够向外发起TCP或UDP连接的恶意程序,并将其设定为在特定条件下自动启动。
2023-06-06 11:37:30
2080
原创 mysql8.0中unit和unit all中的区别?
如果在ALTER TABLE语句中指定了该选项,则MySQL将表视为一个整体,并对整个表进行处理。这可能会导致锁定表的时间较长,影响其他操作的执行。如果在ALTER TABLE语句中指定了该选项,则MySQL将表分成多个单元,并逐个单元地处理,从而减少了锁定表的时间和影响。因此,如果表的大小比较大,建议使用UNIT选项,将表分成多个单元进行处理,以减少锁定表的时间和影响。但是,如果表的大小比较小,使用UNIT ALL选项可能更快,因为它只需要锁定表一次并对整个表进行处理。
2023-06-03 10:29:35
1131
原创 什么是url跳转漏洞?
URL跳转漏洞是一种Web应用程序安全问题,指的是在应用程序处理URL跳转时,由于程序员的疏忽或设计不当,攻击者可能通过构造恶意URL来实现对应用程序的攻击。
2023-06-02 15:58:29
1369
原创 spring-retry组件的使用
Spring Retry是一个开源的Java库,用于处理可能会失败的方法调用,并提供了一种重试机制。当方法调用失败时,Spring Retry允许您指定重试的策略,例如重试次数、重试间隔等。Spring Retry的主要目的是为了提高系统的可靠性和容错性。当方法调用失败时,Spring Retry可以在不影响系统性能的情况下,自动进行重试,从而减少故障对系统的影响。Spring Retry支持多种重试策略,包括固定时间间隔、固定重试次数、指数退避等。
2023-06-01 11:14:23
636
原创 什么是Flink CDC,以及如何使用
数据库中的CDC(Change Data Capture,变更数据捕获)是一种用于实时跟踪数据库中数据变化的技术。CDC的主要目的是在数据库中捕获增量数据,以便在需要时可以轻松地将这些数据合并到其他系统或应用程序中。CDC在数据库管理、数据同步、数据集成和数据备份等方面具有广泛的应用。CDC通常通过以下几种方式实现:基于触发器的CDC:在表上创建触发器,当数据发生更改时,触发器会将更改的数据记录到其他系统或表中。基于事务日志的CDC:通过读取数据库事务日志,将日志中的更改记录解析为可操作的数据。
2023-05-31 16:49:34
15205
3
原创 什么是MySQL8 InnoDB自适应Hash索引
哈希索引是基于哈希表的索引类型。当数据量较大时,InnoDB会自动将哈希索引转换为B-Tree索引,以避免哈希冲突和哈希表的分裂问题。MySQL 8.0引入了InnoDB自适应哈希索引(Adaptive Hash Index)的功能,它可以用于提高某些类型查询的性能。哈希索引需要占用一定的内存空间,因此对于内存有限的系统来说,可能需要权衡内存使用和性能提升之间的平衡。自动转换:InnoDB会自动根据数据量大小来决定使用哪种索引类型,从而避免了手动维护索引的麻烦。哈希索引只能用于等值查询,不能用于范围查询。
2023-05-25 16:38:41
393
原创 什么是垂直扩容和水平扩容
综上所述,根据具体的应用场景和需求,可以选择垂直扩容或水平扩容,或两者结合起来使用。1.垂直扩容 垂直扩容是通过增加单个节点的处理能力来提高整个系统的性能,通常是通过增加服务器的硬件配置、升级CPU、内存、硬盘等来实现。2.水平扩容 水平扩容是通过增加节点数量来提高整个系统的性能,通常是通过增加服务器数量、添加负载均衡设备、分布式部署等来实现。垂直扩容和水平扩容是架构设计中常用的两种扩容方式,它们各有优势,应根据具体场景选择合适的扩容方式。可以满足高并发的访问需求,通过增加节点数量来提高系统的吞吐量;
2023-05-25 16:04:08
3151
原创 为什么mysql使用的是B+树而nosql类型的数据库大多数使用的是LSM树
而大多数NoSQL类型的数据库使用LSM树的原因是因为它们通常面对的是OLAP场景,需要支持高吞吐量的写入操作和大规模数据的批量读取操作。MySQL使用B+树作为其默认的索引结构,因为B+树在某些方面比LSM树更适合作为默认的索引结构。B+树的查询和更新速度相对较快,而且它的写入操作通常是基于内存的。因此,LSM树在处理大量数据时比B+树更快。由于 NoSQL 数据库通常需要频繁进行写入操作,而传统的 B+树 在面对大量写入操作时会出现性能瓶颈,因此 LSM Tree 能够更好地处理这种情况。
2023-05-24 09:47:14
835
原创 什么是webshell,它和XSS有什么不同
Webshell 是一种用于对网站服务器进行远程控制的脚本程序。它通常是一个命令行界面的脚本,可以在服务器上执行各种操作,如文件管理、数据库管理、端口扫描、代码执行等。Webshell 通常通过 Web 服务器上的 PHP、ASP、JSP 等脚本语言编写,并且可以在浏览器中通过 URL 访问。Webshell 的主要目的是为黑客提供一种便捷的方式来访问和控制服务器,这使得攻击者可以执行恶意活动,如窃取敏感信息、植入后门、拒绝服务攻击等。
2023-05-19 11:14:46
794
原创 什么是SQL注入
SQL注入(SQL Injection)是一种常见的网络安全漏洞,它涉及到应用程序中对用户输入的数据进行未经验证和过滤的处理,从而使攻击者能够在应用程序的数据库中执行恶意SQL代码。攻击者通过向应用程序提交精心构造的SQL语句,使得应用程序的数据库服务器执行这些恶意语句,从而获取敏感信息、篡改数据、或者完全控制数据库服务器。
2023-05-18 14:39:27
1630
原创 什么是MQTT,和MQ有什么区别
MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息传输协议,主要用于物联网(IoT)领域,特别是在网络环境受限或资源有限的设备之间进行通信。MQTT提供了一种低开销、低带宽占用的机制,使得设备之间可以高效地传递信息。
2023-05-18 10:20:23
5057
1
原创 什么是xss漏洞
跨站脚本(Cross-Site Scripting,简称XSS)漏洞是一种常见的网络安全漏洞,攻击者通过在目标网站上注入恶意脚本,使得其他用户在访问受影响的网站时,恶意脚本被执行。这种攻击方式通常被称为跨站脚本攻击(XSS Attack)。XSS漏洞的主要原因是攻击者利用了Web应用程序在处理用户输入时的不安全策略。攻击者可以利用这些漏洞来窃取用户的敏感信息、篡改用户的数据或执行恶意代码,从而对用户的隐私和安全造成严重威胁。
2023-05-17 12:36:08
886
原创 什么是msf
Metasploit框架(Metasploit Framework)是一个开源的、可扩展的安全漏洞检测和攻击工具,由Rapid7公司开发。它的主要目的是帮助安全研究人员、红队成员和渗透测试人员发现、利用和防御安全漏洞。Metasploit Framework 提供了一套强大的工具集,使攻击者能够利用已知的安全漏洞进行攻击,同时也提供了防御措施来防止攻击者利用这些漏洞。
2023-05-16 17:11:50
1963
原创 怎么解决slot attributes are deprecated vue/no-deprecated-slot-attribute
{{ item.title }} 是一个模板标签,它在模板中插入了一个元素(slot),并指定了元素的名称为 “title”。这个标签在模板中显示为一个空白元素,可以通过设置其 data 属性来提供内容。attributes are deprecated vue/no-deprecated-slot-attribute的警告。是一种分发内容的机制,用于在子组件中插入内容。解决方法是使用新的语法,在插入位置使用。的使用中有一种旧的语法,即在。属性,这种语法已被弃用。
2023-05-08 14:06:52
14809
原创 使用vue3的语法规则安装elementUI
其中,createApp是Vue3.x中用来创建应用的方法,而use方法则用于安装一个插件。其中el-button就是elementui组件。
2023-05-08 13:47:42
254
原创 怎样在docker中使用macvlan创建可以独立ip访问的容器
macvlan是一种网络虚拟化技术,它允许在一个物理网络接口上配置多个虚拟网络接口,每个虚拟网络接口都有自己独立的 MAC 地址,并且可以配置上 IP 地址进行通信。macvlan主要应用于Docker容器网络中,可以在一个主机上创建多个网络环境,每个环境都有自己独立的 MAC 地址,从而实现容器之间的隔离和通信。在Docker中使用macvlan网络,需要先创建一个子网卡,然后将其添加到容器中,使其成为容器的网络接口。
2023-05-06 17:04:24
6960
1
原创 列式储存和横向储存的优缺点
因为列式储存的数据都是按列存储的,当需要进行数据的修改时,需要将整列数据读出并进行修改后再写回磁盘,这个过程可能会比较耗时。而横向储存的数据是按行存储的,修改时只需要修改对应行的数据即可,不会影响到其他行的数据,因此效率更高。MySQL作为一款开源的数据库管理系统,具有出色的事务支持、复杂数据处理、安全性和高可用性特性,被广泛应用于社交媒体、电子商务、金融、游戏、移动应用等领域。不同的数据库管理系统都具有各自独特的特点和应用场景,因此,在选择适合自己的数据库管理系统时,需要根据自身需求和数据规模综合考虑。
2023-05-05 14:36:42
3360
原创 什么是redis发布订阅模式,并用java代码实现小demo
然后,创建了一个订阅者对象,并通过Jedis的subscribe()方法订阅了名为“news”的频道。Redis中的发布订阅模式是一种消息传递模式,其中订阅者通过订阅特定的频道(channel)来接收发布者发送的消息。当一个客户端订阅了一个频道后,它可以在该频道上设置一个过期时间,在该时间内不需要再轮询数据,而是等待事件发布。实现分布式系统中的订阅者/发布者模式:在分布式系统中,多个客户端可能需要同时订阅同一个频道,以便在该频道上获取相关的事件通知。使用java代码实现一下Redis中的发布订阅模式。
2023-04-24 16:17:48
1552
原创 什么是读扩散和写扩散
写扩散是指在分布式系统中,由于数据的复制和缓存等原因,当一条数据被更新后,需要将该数据的更新操作同步到多个节点中的副本,以保证数据的一致性。读扩散是指在分布式系统中,由于数据的复制和缓存等原因,当一条数据被更新后,在多个节点中都存在该数据的副本,这时候其他节点请求该数据时,可能会读取到过期的数据,因为该节点上的数据还未被更新。因此,读扩散就是指一条数据在更新后,由于分布式系统中数据的复制和缓存等原因,可能会导致其他节点上的数据过期,读取到过期数据的现象。
2023-04-20 14:20:30
2454
原创 LocalDateTime时间处理工具类
LocalDateTime是Java 8引入的日期时间类,表示一个不带时区的日期时间,包含年、月、日、小时、分钟、秒和毫秒等信息。主要应用于需要处理不带时区的日期时间的场景,如日志记录、时间计算、定时任务等。of():根据指定的年、月、日、小时、分钟、秒等信息创建LocalDateTime实例。minusXXX():在日期时间上减少指定的年、月、日、小时、分钟、秒或毫秒。plusXXX():在日期时间上增加指定的年、月、日、小时、分钟、秒或毫秒。这段代码是一个工具类,用来进行日期时间的转换和格式化。
2023-04-19 15:29:04
518
原创 @SentinelResource是代表什么意思
总之,@SentinelResource注解是Sentinel框架中非常重要的一个组件,它为我们提供了一种简洁、易于理解和管理的方式来进行流量控制和限流。@SentinelResource是一个注解,它表示一个方法或者类是 Sentinel 保护的资源,需要进行流量控制、熔断降级等限流措施。public String bonjour(String name):一个简单的方法,返回字符串"Bonjour, "和传入的"name"参数拼接而成的字符串。当该资源受到限流或降级时,将会触发相应的处理策略。
2023-04-19 14:58:21
750
原创 什么是BASE最终一致性
如果使用传统的ACID事务,每次对库存进行更改时都需要访问同一台数据库,这会带来很大的性能瓶颈。相反,使用BASE最终一致性,平台可以将库存信息复制到多个节点,即使节点之间的数据不一致,但最终数据会达成一致状态。例如,在一个节点上减少库存,但是由于网络延迟或其他原因,另一个节点上的库存仍然是原先的值。BASE最终一致性是指,在分布式系统中,数据副本可能存在不一致性,但最终数据会达成一致状态。与传统的ACID事务(原子性、一致性、隔离性和持久性)相比,BASE更适用于大规模分布式系统的设计和实现。
2023-04-19 11:40:45
649
原创 什么是Cache Aside Pattern与延迟双删
它的核心思想是在更新数据库数据后,缓存中先存储旧数据一段时间,等待缓存过期后再更新为最新数据,从而避免了因缓存过期而导致的数据不一致问题。然而,这种设计模式也存在一些缺点,最主要的是会导致缓存与数据库中的数据不一致的问题,因为当数据库中的数据被更新或删除时,缓存中的数据还未被更新或删除。当需要更新数据库中的数据时,先更新数据库中的数据,再将缓存中对应的数据删除。当需要删除数据库中的数据时,先删除数据库中的数据,再将缓存中对应的数据删除。如果缓存中不存在该数据,则从数据库中获取数据并将其存储到缓存中。
2023-04-19 11:31:34
1261
原创 什么是数据库的脏读,不可重复读,幻读?
另外,也可以使用“快照隔离”级别来解决不可重复读的问题,该级别会在事务开始时对所有数据进行快照,事务期间读取的数据都是从快照中读取,不会受到其他事务的修改影响。这就是不可重复读的问题。A事务先查询了某个账户的余额,然后在查询结束之前,B事务插入了一条新的记录,导致A事务在第二次查询时发现了新的余额记录,与第一次查询的结果不一致,这就是幻读。**举例:**假设有两个事务A和B,事务A要更新某个数据并执行提交操作,但是事务B在事务A提交之前读取了该数据,此时事务B读取到了未提交的数据,即脏数据。
2023-04-18 14:26:33
1263
原创 使用springboot解释什么是jwt
JWT全称为JSON Web Token,是一种基于JSON格式的轻量级的身份认证和授权机制。它由三部分组成,分别是头部(Header)、载荷(Payload)和签名(Signature),通常使用点号(.)将这三部分连接起来形成一个字符串。其中,头部通常包含加密算法和token类型等信息,载荷通常包含用户信息和权限等数据,签名则是对头部和载荷的加密结果。JWT常用于Web应用的身份认证和授权,客户端通过在请求头中携带JWT向服务器进行身份验证并获取资源。
2023-04-15 10:12:52
510
原创 使用java实现雪花算法
雪花算法(Snowflake)是Twitter开源的分布式ID生成算法,可以生成全局唯一且有序的ID,适用于分布式系统中的ID生成。它的核心思想是,将一个64位的二进制数拆分成多个部分,分别表示时间戳、数据中心ID、机器ID和序列号,通过对时间戳、数据中心ID、机器ID和序列号进行位运算和组合,生成一个唯一的64位ID。其中,符号位固定为0,时间戳表示生成ID的时间,精确到毫秒级别,可以使用69年;数据中心ID和机器ID用于区分不同的数据中心和机器,最多可以支持32个数据中心和32台机器;
2023-04-11 15:23:58
1301
原创 怎么在nginx配置文件中设置nginx缓存
1.打开nginx配置文件,一般在/etc/nginx/nginx.conf中。4.重新加载nginx配置文件,使其生效。
2023-04-11 14:37:35
2009
原创 mysqldump的使用
其中,dbname为要备份的MySQL数据库名称,backup.sql为备份文件名。执行以上命令后,将会备份整个MySQL数据库到backup.sql文件中。1.连接MySQL数据库,在使用mysqldump备份数据库之前,需要先连接到MySQL数据库。其中,dbname为要还原的MySQL数据库名称,backup.sql为备份文件名。执行以上命令后,将会备份指定的数据表结构到backup.sql文件中。mysqldump是MySQL自带的备份工具,可以用于备份MySQL数据库。5.还原MySQL数据库。
2023-04-11 11:42:23
2720
原创 使用mysql客户端连接数据库并导入sql文件
其中,username为数据库用户名,hostname为数据库服务器地址或IP地址。输入命令后,系统会提示输入密码。注意:上述命令中涉及到的用户名、密码、主机名、数据库名、SQL文件名等需要根据实际情况进行替换。3.导入SQL文件。要使用MySQL客户端连接数据库并导入SQL文件,需要按照以下步骤进行操作。其中,databasename为要导入SQL文件的数据库名称。执行完毕后,SQL文件中的内容就会被导入到选定的数据库中。
2023-04-11 11:28:14
937
原创 效率驱动人类必将与大模型和机器融合
以纺织业为例,从1733年的约翰·凯·发明的飞梭到1764年的哈格里夫斯发明的约翰·凯改良版飞梭,再到1785年的贝克特发明的力矩纺纱机,这些机器的出现,使得纺织业的生产效率得到极大提升。其次,科技的发展推动了生产效率的提升。以制造业为例,自动化技术的发展,使得生产线上的机器人可以自动完成产品的加工和装配,大大提高了生产效率和质量。近年来,人工智能技术的发展速度非常快,例如,2012年,Google的神经网络模型AlexNet在ImageNet图像识别比赛中获得了冠军,标志着深度学习技术的崛起。
2023-04-11 10:50:23
199
原创 通用脑机接口是未来下一次的iPhone时刻
通用性革命是指通过一种普适的技术或方法来改变人类的生产方式,从而实现生产效率的提高和生产成本的降低,之前引发通用性革命是以蒸汽机、通用智能手机和互联网计算机为核心,蒸汽机是18世纪工业革命的代表,它的出现改变了人类的生产方式和生活方式。在蒸汽机的推动下,人们可以使用机器来代替传统的手工生产方式,从而实现生产效率大幅提高,生产成本大幅降低。蒸汽机还促进了工业化进程的加速,推动了城市化、交通运输和通信技术的发展。通用智能手机是21世纪信息技术革命,也改变了人类的生产方式和生活方式。
2023-03-30 16:07:48
178
原创 用树莓派实现呼吸灯效果
根据提供的代码,该脚本控制树莓派GPIO 11引脚上的PWM信号。代码将GPIO模式设置为BOARD,将引脚11设置为输出,创建一个频率为100Hz且初始占空比为0的PWM对象,然后逐渐以5%的增量增加和减少占空比,每次变化之间延迟50ms。最后,脚本停止PWM并清理GPIO资源。所选代码块仅将GPIO模式设置为BOARD,不影响PWM信号或任何其他GPIO设置。前缀和后缀代码块包含控制PWM信号的其余代码。
2023-03-29 15:47:22
479
原创 一文带你搞懂Java中@NotNull、@NotEmpty、@NotBlank,@Max。。。是什么意思
注解说明@Null限制只能为null@NotNull限制必须不能为null,一般用在 Integer 类型的基本数据类型的非空校验上,而且被其标注的字段可以使用 @size、@Max、@Min 对字段数值进行大小的控制@NotEmpty被限制的字符串必须非空(不为null且不为空)@NotBlank只能作用在接收的 String 类型上,注意是只能,不能为 null,而且调用 trim() 后,长度必须大于 0即:必须有实际字符@Digits(intege
2023-03-28 23:17:35
3156
Cobalt Strike是一款商业漏洞利用和渗透测试工具(包含客户端和服务端)
2023-06-10
数据存储与管理 + Redis + RedisInsight + 可视化管理
2023-03-22
k8s_learn.zip
2020-08-21
Python复习笔记
2019-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人